[R-es] Unir varias columnas en una sola

Marcuzzi, Javier Rubén javier.ruben.marcuzzi en gmail.com
Lun Feb 18 03:47:26 CET 2013


Estimado Fernando Macedo

Creo que las ayudas que le dieron pueden ser muy eficientes, también se
podría decir utilizar sql (sqldf ...), pero posiblemente los comentarios
aportados por los otros participantes de la lista son más apropiados.

Sin embargo, me crea una duda, ¿sus columnas son todas de la misma
longitud?, pienso que con el ID no hay problema, pero luego, el resto de
las columnas que son concatenadas a una sola, ¿como separa la
información? Por ejemplo, si todas las columnas tienen 20 dígitos es
fácil, pero ¿si solo un valor en una columna tiene 19 dígitos?

Javier Marcuzzi

El sáb, 16-02-2013 a las 19:12 -0200, Fernando Macedo escribió:
> Eso, por ahí es el asunto, tengo que estudiar más el comando apply, o 
> mejorar mi creatividad.
> 
> Saludos y muchas gracias!!!
> 
> Fernando
> 
> 
> El 16/02/13 19:06, Carlos J. Gil Bellosta escribió:
> > data(iris)
> > apply(iris[,-1], 1, paste,  collapse = " ")
> >
> > Un saludo,
> >
> > Carlos J. Gil Bellosta
> > http://www.datanalytics.com
> >
> > El día 16 de febrero de 2013 22:01, Fernando Macedo
> > <fermace en gmail.com> escribió:
> >> Muchas gracias Carlos, esta puede ser una manera, pero omití decir que
> >> tengo que juntar en principio 90 columnas y luego podrían ser unas
> >> bastantes más, con lo que escribir cada columna por separado en el
> >> comando paste() resulta poco práctico.
> >>
> >> Estuve tratando de usar colnames embutido en el paste o
> >> dat[,2:ncol(dat)] pero no obtengo lo que busco. ¿Alguna otra idea de
> >> como poder usar el paste?
> >>
> >> Puedo separa la parte del ID y los datos y trabajarlas por separado para
> >> luego juntarlas, pero estoy en la misma al momento de juntar los datos
> >> en un bloque solo.
> >>
> >> Saludos
> >>
> >> Fernando
> >>
> >>
> >> El 16/02/13 18:08, Carlos Ortega escribió:
> >>> Hola,
> >>>
> >>> Esta es una forma:
> >>>
> >>>> dat <- data.frame(ID=1:10, col2=rnorm(10), col3=rnorm(10),
> >>> col4=rnorm(10))
> >>>> dat
> >>>     ID         col2        col3       col4
> >>> 1   1  1.937262274 -1.40273857 -1.9050536
> >>> 2   2  1.337924391  1.22860925  0.3107429
> >>> 3   3 -0.002105218 -1.23291681 -0.8310097
> >>> 4   4  0.058295336  1.61871970 -1.0597558
> >>> 5   5 -0.091517513 -0.99422029  0.6173428
> >>> 6   6  0.534795503  0.07014697  2.0995122
> >>> 7   7 -0.075998477 -0.23940158 -1.0736795
> >>> 8   8 -0.886673525  0.10413987  0.5884510
> >>> 9   9  1.710306972  1.82942633  0.8287779
> >>> 10 10 -0.208130660  0.30641105 -0.1400882
> >>>> paste(dat$ID," ", dat$col2, dat$col3, dat$col4, sep="")
> >>>   [1] "1 1.93726227410434-1.40273857014605-1.90505356394495"
> >>>   [2] "2 1.337924391475771.228609247659310.31074290333037"
> >>>   [3] "3 -0.00210521831655121-1.23291680520637-0.831009714534192"
> >>>   [4] "4 0.05829533559436561.61871969701435-1.05975581471527"
> >>>   [5] "5 -0.0915175127220064-0.9942202875567060.617342803251114"
> >>>   [6] "6 0.534795503353260.0701469747674812.09951220785224"
> >>>   [7] "7 -0.0759984771691605-0.239401578046576-1.07367948585017"
> >>>   [8] "8 -0.8866735246857180.1041398738270440.588451006124745"
> >>>   [9] "9 1.710306971765611.829426334369970.828777900768105"
> >>> [10] "10 -0.2081306604078980.306411045612295-0.140088249050132"
> >>>
> >>>
> >>> Saludos,
> >>> Carlos Ortega
> >>> www.qualityexcellence.es <http://www.qualityexcellence.es>
> >>>
> >>>
> >>> El 16 de febrero de 2013 19:58, Fernando Macedo <fermace en gmail.com
> >>> <mailto:fermace en gmail.com>> escribió:
> >>>
> >>>
> >>>
> >>>      Buenas a todos, relato directamente mi problema.
> >>>
> >>>      Estoy preparando unos datos para ingresarlos en otro programa que
> >>>      requiere una columna de ID y el resto de la información toda
> >>>      seguida sin
> >>>      espacios.
> >>>
> >>>      El echo es que yo tengo la información separada en columnas, por
> >>>      ejemplo:
> >>>
> >>>      ID col2 col3 col4 col5 etc.
> >>>
> >>>      y precisaría dejarla de la siguiente forma:
> >>>
> >>>      ID col2col3col4col5 etc.
> >>>
> >>>      Para luego escribir a disco y proceder con otro software.
> >>>
> >>>      Alguien sabe que comando puedo usar para juntar una serie columnas
> >>>      todas
> >>>      en un bloque solo?
> >>>
> >>>      Saludos y muchas gracias de ante mano!!
> >>>
> >>>      Fernando Macedo
> >>>
> >>>      _______________________________________________
> >>>      R-help-es mailing list
> >>>      R-help-es en r-project.org <mailto:R-help-es en r-project.org>
> >>>      https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> Saludos,
> >>> Carlos Ortega
> >>> www.qualityexcellence.es <http://www.qualityexcellence.es>
> >>
> >>          [[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
> >>
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es