Hola a todos...Auxilio, estoy varado en esto y creo que mi terquedad no me deja avanzar ... terquedad ya que estoy usando la estructura data.table y no logro obtener el resultado. Tengo una DT contiene un DATO y los resultados de la aplicación de una validación (ERR01, ERR2, ERR3) y la concatenación de estos errores en una sola columna. Si tiene error, graba el número del error, si no lo tiene, graba NA. Utilizando la función paste directamente en el DT se ontiene la variable LISTA: DATO ERR1 ERR2 ERR3 LISTAAAA 1 2 3 1|2|3BBB NA 2 3 NA|2|3CCC NA NA 3 NA|NA|3DDD NA NA NA NA|NA|NA Pero lo que se requiere es que el NA no se muestre, es decir lista deberÃa tener elementos como: 1|2|3, 2|3, 3, y vacÃo, si las 3 validaciones arrojaron NA.uso lo siguiente: DT[,lista:=paste(err1,err1,err3,sep="|")] pero para quitar los NA, debo usar funciones como na.omit, y no logro crear la estructura para usarlo... que debe ser un na,omit(c(err1,err2,err3)) y sobre esto el paste.Supongo que tengo un lÃo en uso de las estructuras ... Si no lo logro, toca trabajar con data.frames y dejar a aun lado mi terquedad...!!! Gracias por cualquier ayuda y/o sugerencia.
[R-es] trabajar con todos los elementos de la fila de un data.table
2 messages · Patricio Fuenmayor Viteri, Olivier Nuñez
Utiliza "collapse" en vez de "sep" dentro de la función paste(). Un ejemplo:
DT=data.table(ID=1:4,ERR1=c(1,1,NA,NA),ERR2=c(NA,2,2,NA),ERR3=c(3,3,3,NA)) DT
ID ERR1 ERR2 ERR3 1: 1 1 NA 3 2: 2 1 2 3 3: 3 NA 2 3 4: 4 NA NA NA
DT[,lista:=paste(na.omit(c(ERR1,ERR2,ERR3)),collapse="|"),by=ID] DT
ID ERR1 ERR2 ERR3 lista 1: 1 1 NA 3 1|3 2: 2 1 2 3 1|2|3 3: 3 NA 2 3 2|3 4: 4 NA NA NA
----- Mensaje original ----- De: "Patricio Fuenmayor Viteri" <patricio.fuenmayor en outlook.com> Para: "r-help-es" <r-help-es en r-project.org> Enviados: Martes, 27 de Enero 2015 17:05:23 Asunto: [R-es] trabajar con todos los elementos de la fila de un data.table Hola a todos...Auxilio, estoy varado en esto y creo que mi terquedad no me deja avanzar ... terquedad ya que estoy usando la estructura data.table y no logro obtener el resultado. Tengo una DT contiene un DATO y los resultados de la aplicaci?n de una validaci?n (ERR01, ERR2, ERR3) y la concatenaci?n de estos errores en una sola columna. Si tiene error, graba el n?mero del error, si no lo tiene, graba NA. Utilizando la funci?n paste directamente en el DT se ontiene la variable LISTA: DATO ERR1 ERR2 ERR3 LISTAAAA 1 2 3 1|2|3BBB NA 2 3 NA|2|3CCC NA NA 3 NA|NA|3DDD NA NA NA NA|NA|NA Pero lo que se requiere es que el NA no se muestre, es decir lista deber?a tener elementos como: 1|2|3, 2|3, 3, y vac?o, si las 3 validaciones arrojaron NA.uso lo siguiente: DT[,lista:=paste(err1,err1,err3,sep="|")] pero para quitar los NA, debo usar funciones como na.omit, y no logro crear la estructura para usarlo... que debe ser un na,omit(c(err1,err2,err3)) y sobre esto el paste.Supongo que tengo un l?o en uso de las estructuras ... Si no lo logro, toca trabajar con data.frames y dejar a aun lado mi terquedad...!!! Gracias por cualquier ayuda y/o sugerencia. _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es