[R-es] Unir varias columnas en una sola

Marcuzzi, Javier Ruben javier.ruben.marcuzzi en gmail.com
Dom Feb 24 04:20:26 CET 2013


Estimado Fernando Macedo

Ha, entonces si es SNP, genética ..., de eso entiendo, bueno, son las
00.17 hs y tengo sueño, mis neuronas ...

Sin dudas hay gente mucho más capacitada que yo, pero si me lo permite
puede "salir de R", aunque no es exactamente eso, solamente cambiar
r-project por http://www.bioconductor.org/

Posiblemente hay alguna solución que se adapta a sus requerimientos.

Javier Marcuzzi


On vie, 2013-02-22 at 19:39 -0200, Fernando Macedo wrote:
> Hola Javier, disculpa no contestarte antes pero se me paso tu
> pregunta. 
> 
> 
> Si sin columnas de igual longitud. es para trabajar con resultados de
> SNPs, donde cara columna tiene el resultado para cada SNP y este puede
> ser solamente 0, 1 o 2 copias del alelo. 
> 
> 
> Gracias por tu aporte sobre el sqldf no lo había pensado. 
> 
> 
> Saludos 
> 
> 
> Fernando
> 
> 
> 
> El 18 de febrero de 2013 00:47, Marcuzzi, Javier
> <javier.ruben.marcuzzi en gmail.com> escribió:
>         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