[R-es] Unir varias columnas en una sola

Carlos J. Gil Bellosta cgb en datanalytics.com
Sab Feb 16 22:06:24 CET 2013


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
>



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