Hola Consulto por un problema que no consigo resolver. Tengo un dataframe con muchas columnas todas de texto. Cada columna tiene solamente un valor válido y el resto son NAs. También cada fila tiene un único valor válido. Quiero colapsar ese data frame en uno que tenga solamente una fila y todas las columnas. Intenté con loops, while, apply y otros parecidos pero no lo logro El ejemplo del data frame sería así: V1 V2 V3 a33 <NA> 10-04 <NA> <NA> <NA> <NA> d52725 <NA> <NA> <NA> <NA> Y quiero lograr algo así V1 V2 V3 a33 d52725 10-04 Mi script es así: Nombre.1<-colnames(df0) #df0 es el dataframe que obtengo con NA df<-data.frame(1) #inicio un nuevo data frame con una variable sin nombre y valor 1 for (i in Nombre.1) {merge(df, subset(paste("df0$",i,sep=''),!is.na(paste("df0$",i,sep=''))))} #el loop Cualquier ayuda será apreciada -- Oscar Benitez [[alternative HTML version deleted]]
javier.ruben.marcuzzi en gmail.com
2016-Oct-11 18:27 UTC
[R-es] Colapsar una matriz con NA en una única fila
Estimado Oscar Benitez Yo utilizo algo como lo siguiente: Datos<- Datos[ !is.na(Datos$DatoX),] #Solo dejo filas en las que las tratamiento son diferentes de cero Javier Rubén Marcuzzi De: Oscar Benitez Enviado: martes, 11 de octubre de 2016 15:22 Para: R-help-es Asunto: [R-es] Colapsar una matriz con NA en una única fila Hola Consulto por un problema que no consigo resolver. Tengo un dataframe con muchas columnas todas de texto. Cada columna tiene solamente un valor válido y el resto son NAs. También cada fila tiene un único valor válido. Quiero colapsar ese data frame en uno que tenga solamente una fila y todas las columnas. Intenté con loops, while, apply y otros parecidos pero no lo logro El ejemplo del data frame sería así: V1 V2 V3 a33 <NA> 10-04 <NA> <NA> <NA> <NA> d52725 <NA> <NA> <NA> <NA> Y quiero lograr algo así V1 V2 V3 a33 d52725 10-04 Mi script es así: Nombre.1<-colnames(df0) #df0 es el dataframe que obtengo con NA df<-data.frame(1) #inicio un nuevo data frame con una variable sin nombre y valor 1 for (i in Nombre.1) {merge(df, subset(paste("df0$",i,sep=''),!is.na(paste("df0$",i,sep=''))))} #el loop Cualquier ayuda será apreciada -- Oscar Benitez [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Javier Muchas gracias por su respuesta Aunque no está funcionando, pues si ejecuto: EncDTE1<- t.EncDTE1[ !is.na(t.EncDTE1$Var1),] obtengo Var1, Var2, Var3,...Varn con datos "texto", NA, NA....NA Pero al ejecutar EncDTE1<- t.EncDTE1[ !is.na(t.EncDTE1$Var2),] obtengo Var1, Var2, Var3,...Varn con datos NA,"texto", NA....NA Estoy tratando de dar la vuelta con el loop otra vez, pero aún no lo consigo... Muchas gracias El 11 de octubre de 2016, 15:27, <javier.ruben.marcuzzi en gmail.com> escribió:> Estimado Oscar Benitez > > > > Yo utilizo algo como lo siguiente: > > > > Datos<- Datos[ !is.na(Datos$DatoX),] #Solo dejo filas en las que las > tratamiento son diferentes de cero > > > > Javier Rubén Marcuzzi > > > > *De: *Oscar Benitez <oscar.benitez1962 en gmail.com> > *Enviado: *martes, 11 de octubre de 2016 15:22 > *Para: *R-help-es <r-help-es en r-project.org> > *Asunto: *[R-es] Colapsar una matriz con NA en una única fila > > > > Hola > > > > Consulto por un problema que no consigo resolver. > > > > Tengo un dataframe con muchas columnas todas de texto. Cada columna tiene > > solamente un valor válido y el resto son NAs. También cada fila tiene un > > único valor válido. Quiero colapsar ese data frame en uno que tenga > > solamente una fila y todas las columnas. Intenté con loops, while, apply y > > otros parecidos pero no lo logro > > > > El ejemplo del data frame sería así: > > V1 V2 V3 > > a33 <NA> 10-04 > > <NA> <NA> <NA> > > <NA> d52725 <NA> > > <NA> <NA> <NA> > > > > Y quiero lograr algo así > > > > V1 V2 V3 > > a33 d52725 10-04 > > > > Mi script es así: > > > > Nombre.1<-colnames(df0) #df0 es el dataframe que obtengo con NA > > > > df<-data.frame(1) #inicio un nuevo data frame con una variable sin nombre y > > valor 1 > > > > > > for (i in Nombre.1) > > {merge(df, subset(paste("df0$",i,sep=''),!is.na(paste("df0$",i,sep='')) > ))} > > #el loop > > > > Cualquier ayuda será apreciada > > > > -- > > Oscar Benitez > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >-- Oscar Benitez [[alternative HTML version deleted]]