Gracias, Carlos. Habia pensado en algo similar usando sapply():
sapply(seq(1, ncol(vtmp), by = 2), function(i) c(rbind(as.character(vtmp[, i]), as.character(vtmp[, i+1])))) Dependiendo de la dimension de los datos, quizas mapply() sea mas eficiente que sapply(). Saludos cordiales, Jorge.- 2015-02-25 1:01 GMT+11:00 Carlos Ortega <c...@qualityexcellence.es>: > Hola, > > Este otro ejemplo a partir de la idea de Jorge, de c�mo procesar toda la > tabla que tienes: > > > #Creo un data.frame de ejemplo todo con letras > > vtmp <- as.data.frame(lapply(letters,function(x) { rep(x,each=50) })) > > names(vtmp) <- paste("col",LETTERS,sep="") > > head(vtmp) > colA colB colC colD colE colF colG colH colI colJ colK colL colM colN > colO colP colQ colR colS colT colU colV colW colX colY colZ > 1 a b c d e f g h i j k l m n > o p q r s t u v w x y z > 2 a b c d e f g h i j k l m n > o p q r s t u v w x y z > 3 a b c d e f g h i j k l m n > o p q r s t u v w x y z > 4 a b c d e f g h i j k l m n > o p q r s t u v w x y z > 5 a b c d e f g h i j k l m n > o p q r s t u v w x y z > 6 a b c d e f g h i j k l m n > o p q r s t u v w x y z > > > > #Los n�meros de columnas impares de mi data.frame > > matIndex <- seq(1, dim(vtmp)[2], by=2) > > > > #Funci�n para juntar dos columnas (idea de Jorge) > > mifun <- function(x,y) c(rbind(as.vector(vtmp[,x]),as.vector(vtmp[,y]))) > > > > #Resulado aplicando mapply. Coge dos columnas consecutivas y las alterna > > #y as� de forma iterativa para cada una de las columnas que indica > "matIndex" y la siguiente columna "matIndex+1" > > resultado <- mapply(mifun,matIndex, matIndex+1) > > head(kk) > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] > [1,] "a" "c" "e" "g" "i" "k" "m" "o" "q" "s" "u" "w" "y" > [2,] "b" "d" "f" "h" "j" "l" "n" "p" "r" "t" "v" "x" "z" > [3,] "a" "c" "e" "g" "i" "k" "m" "o" "q" "s" "u" "w" "y" > [4,] "b" "d" "f" "h" "j" "l" "n" "p" "r" "t" "v" "x" "z" > [5,] "a" "c" "e" "g" "i" "k" "m" "o" "q" "s" "u" "w" "y" > [6,] "b" "d" "f" "h" "j" "l" "n" "p" "r" "t" "v" "x" "z" > > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 24 de febrero de 2015, 14:10, Fernando Macedo <ferm...@gmail.com> > escribi�: > > Excelente! Ahora corre muy r�pido. No conoc�a ese m�todo, creo que me va a >> resultar muy �til. >> >> Muchas gracias y saludos. >> >> Fernando Macedo >> >> El 24/02/15 a las 10:51, Jorge I Velez escribi�: >> >> Fernando, >> >> Podrias intentar >> >> R> a <- rep('a', 5) >> R> b <- rep('b', 5) >> R> a >> [1] "a" "a" "a" "a" "a" >> R> b >> [1] "b" "b" "b" "b" "b" >> R> c(rbind(a, b)) >> [1] "a" "b" "a" "b" "a" "b" "a" "b" "a" "b" >> >> Saludos, >> Jorge.- >> >> >> 2015-02-24 23:49 GMT+11:00 Fernando Macedo <ferm...@gmail.com>: >> >> > Buenas a todos. >> > Relato el problema: >> > >> > - tengo un archivo de 316 columnas por 562000 filas (aprox.). >> > - esas 316 columnas representan 158 sujetos, o sea dos columnas por cada >> > individuo conteniendo informaci�n que debe ser condensada en una sola. >> > >> > Lo que necesito es ir tomando las dos columnas de cada individuo e >> > intercalar los elementos de los vectores formando uno solo. >> > >> > Ejemplificando ser�a algo as�: >> > >> > > a >> > [1] "a" "a" "a" "a" "a" >> > > b >> > [1] "b" "b" "b" "b" "b" >> > > c >> > [1] "a" "b" "a" "b" "a" "b" "a" "b" "a" "b" >> > >> > >> > Estoy haciendo con un loop for pero es realmente muy lento. He buscado >> por >> > alg�n paquete que ya lo haga directamente pero no he tenido mucho >> �xito. Me >> > imagino que con sapply o apply pueda ser mucho m�s efectivo pero me ha >> > resultado complicado para entender la sintaxis de estas funciones cuando >> > involucra m�s de un objeto (vector, matriz, etc...). >> > >> > Desde ya agradezco las sugerencias que puedan verter sobre este >> problema. >> > >> > -- >> > Fernando Macedo >> > >> > [[alternative HTML version deleted]] >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es@r-project.org >> > https://stat.ethz.ch/mailman/listinfo/r-help-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 >> > > > > -- > 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