[R-es] Unir varias columnas en una sola

Marcuzzi, Javier Ruben javier.ruben.marcuzzi en gmail.com
Lun Feb 25 16:19:14 CET 2013


Fernando Macedo

Supe usar los progragas de Miztal, hay algunas partes interesantes, si
usas test-day junto con genómica practicamente no hay computadora que
resista, ahora si utilizas un modelo blup habría que probar, en realidad
hay muchas pero ... pocas, si uno mira algunos softwares estos
especifican rutinas de Miztal, al estar en fortran las pueden compilar
para sus programas, lo que tamnien es posible en R.

El problema pasa en la cantidad de datos y la memoria requerida, en R
hay varias alternaticas para el pedigree, aunque en genómica casi todos
evitan este porque ahí si que los requerimientos informáticos son altos,
como también es sierto que evitan muchas cosas sencillas, tan lógicas
que por más SNP que utilicen el resultado no sirva para nada, solo para
tesis y defender algunas cosas, pero a campo nada que ver, hay algunas
publicaciónes donde comparan la genómica en distintos paices, y el
problema no es la genómica, es la interpretación del científico que
desconoce como funciona el ADN, cuestiones básicas de fisiología animal,
producción, de genética básica.

Pero claro, colocar un factor en el modelo "mata la computadora", en mi
caso colocar una de estas variables en costos de tiempo informático es
pasar de minutos a más de dos días, si se mira alguna de la
documentación de Mistal hay que esperar una semana (core 2 ...).

Yo use programas comerciales y R, cuándo el modelo es simple, el tiempo
es casi el mismo, no hay drama, usa R. Si tienes problemas con los
registros, R no los soluciona, busca algo que te ayude, eso es un
rompedero de cabeza, en R hay paquetes para el pedigree pero si están
desordenados se complica mucho.

Si te da la cabeza (a mi no, no me animo), usa R con y con matrices
podes hacer todo lo que escribe Mistal, el lo documenta todo, compila en
R, lo que R realiza genial es el trabajo de importación de datos,
acomodarlos, poder graficar, esas son cosas que en fortran dan trabajo.

Yo en R corri el mismo modelo, o dicho de otra forma, los mismos datos,
todo igual menos la información de parentezco, el tiempo de espera es de
segundos a más de 5 minutos, y solo utilizando la parte aditiva, ni
hablar de separar lo que es del animal y lo que es por genética en el
animal, en términos informáticos eso es muchísimo, los SNP no consumen
recursos en comparación a los parientes.

Esta bueno el autor que buscaste, hay un trabajo de el donde habla de la
era post genómica y formas de tabajo con algoritmos donde integra de
todo, lástima que hay tantas publicaciónes que cuándo (por lo menos yo)
plantean algo serio nos miran con cara de "estas re loco, estudia algo",
pero pocos tienen la habilidad de ese autor para integrar contenidos.

El enfoque de ese autor esta muy bueno, por lo menos desde mi punto de
vista, aunque si podes utilizar R hasta que este no de más, usa R,
porque un ranef() es igual al archivo de salida, con la diferencia que
por ejemplo plot() no esta en fortran.

Javier Marcuzzi

On lun, 2013-02-25 at 12:27 -0200, Fernando Macedo wrote:
> Muchas gracias Javier, voy a vicharlo, como estaba trabajando con
> cosas de parentesco y paternidades usé el Cervus y estaba preparando
> los datos para usar los programas de Miztal. Sabía del Galaxy (creo
> que es ese el nombre) que tiene herramientas para genómica (aunque
> nunca lo usé) pero este otro proyecto no lo conocía. Uno más para
> probar. 
> 
> Aunque tengo entendido que el R no es la mejor opción para trabajar
> con genomica principalmente por el volumen de datos. ¿Cual es su
> opinión? 
> 
> 
> 
> Saludos y gracias. 
> 
> 
> 
> El 24 de febrero de 2013 01:20, Marcuzzi, Javier Ruben
> <javier.ruben.marcuzzi en gmail.com> escribió:
>         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