Hola, Esto te puede valer...
> # Crear un df con NAs y solo un elemento por columna no NA > df <- as.data.frame(matrix(data = NA, nrow = 10, ncol = 5 )) > set.seed(1) > df2 <- apply(df, 2, function(x) { x[sample(1:10,1)] <- rnorm(1); x}) > df2 V1 V2 V3 V4 V5 [1,] NA NA NA NA NA [2,] NA NA NA -1.53995 NA [3,] NA NA NA NA NA [4,] NA NA NA NA NA [5,] NA NA NA NA NA [6,] -0.6264538 NA NA NA NA [7,] NA NA 1.595281 NA NA [8,] NA NA NA NA 0.4874291 [9,] NA 1.329799 NA NA NA [10,] NA NA NA NA NA > > # Encuentra en cada col las filas con NAs > idx <- apply(df2,2, function(x) { which(!is.na(x)) } ) > # Extrae de cada col del df con NA el elemento no NA > idx_df <- data.frame() > for(i in 1:ncol(df2)) { + idx_df[1,i] <- df2[idx[i], i] + } > idx_df V1 V2 V3 V4 V5 1 -0.6264538 1.329799 1.595281 -1.53995 0.4874291 > Saludos, Carlos Ortega www.qualityexcellence.es El 11 de octubre de 2016, 20:53, Oscar Benitez <oscar.benitez1...@gmail.com> escribió: > 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.marcu...@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.benitez1...@gmail.com> > > *Enviado: *martes, 11 de octubre de 2016 15:22 > > *Para: *R-help-es <r-help-es@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@r-project.org > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > > -- > Oscar Benitez > > [[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]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es