Pablo Fernandez Gonzalez
2013-Feb-16 13:36 UTC
[R-es] Eliminar diferencias no consecutivas en un data frame
Hola, Tengo un problema a la hora de trabajar con un data frame (input) con estas 2 columnas (ejemplo), X Y 5 18 13 0 12 04 17 115 011 02 18 1 Lo que necesito hacer en primer lugar es (no es obligatorio hacerlo aquí, se pueden seleccionar antes las filas que quieras, etc.) el módulo de la diferencia (abs(diff(input$XY))) de las filas de X para Y=1 y para Y=0 resultando en esto, X1 X0 3 94 33 45 6 Finalmente debo eliminar (no utilizar, etc.) las diferencias entre elementos que no estén seguidos (diferencias lejanas) resultando en esto, X1 X0 3 9 3 46 y sumarlas, sum(X1)=12sum(X2)=13 Los unos y ceros no tienen por qué ser simétricos ni pares como en el ejemplo, la única condición a seguir es que al final sólo debo quedarme con las diferencias de elementos consecutivos (11 / 00). Yo lo he conseguido hacer, el problema es que lo hice de una forma muy engorrosa y poco coherente (debe de ser lo más rápida y clara posible) y no me vale, a ver si me podéis echar una mano por favor. Saludos. [[alternative HTML version deleted]]
Carlos Ortega
2013-Feb-16 17:35 UTC
[R-es] Eliminar diferencias no consecutivas en un data frame
Hola Pablo, Por favor, ¿lo puedes volver a explicar sobre este data.frame? No sé si los valores son los apropiados en cada columna. #-------------------------------- Lines <- "X Y 5 18 13 0 12 04 17 115 011 02 18 1 " t.data<-textConnection(Lines) datos<-read.table(t.data, header=T, as.is=T) close(t.data) #--------------------------------> datosX Y 1 5 18 2 13 0 3 12 4 4 17 115 5 11 2 6 18 1 La verdad es que no sé como se obtienen los valores que dices de X1 X0 3 94 33 45 6 Ni los siguientes X1 X0 3 9 3 46 y sumarlas, sum(X1)=12sum(X2)=13 Gracias, Carlos Ortega www.qualityexcellence.es El 16 de febrero de 2013 14:36, Pablo Fernandez Gonzalez < bag2dime@hotmail.com> escribió:> > Hola, > Tengo un problema a la hora de trabajar con un data frame (input) con > estas 2 columnas (ejemplo), > X Y 5 18 13 0 12 04 17 115 > 011 02 18 1 > Lo que necesito hacer en primer lugar es (no es obligatorio hacerlo aquí, > se pueden seleccionar antes las filas que quieras, etc.) el módulo de la > diferencia (abs(diff(input$XY))) de las filas de X para Y=1 y para Y=0 > resultando en esto, > X1 X0 3 94 33 45 6 > Finalmente debo eliminar (no utilizar, etc.) las diferencias entre > elementos que no estén seguidos (diferencias lejanas) resultando en esto, > X1 X0 3 9 3 46 y sumarlas, > sum(X1)=12sum(X2)=13 > Los unos y ceros no tienen por qué ser simétricos ni pares como en el > ejemplo, la única condición a seguir es que al final sólo debo quedarme con > las diferencias de elementos consecutivos (11 / 00). > Yo lo he conseguido hacer, el problema es que lo hice de una forma muy > engorrosa y poco coherente (debe de ser lo más rápida y clara posible) y no > me vale, a ver si me podéis echar una mano por favor. > Saludos. > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]