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
Hola, Esta es una forma:> dat <- data.frame(ID=1:10, col2=rnorm(10), col3=rnorm(10), col4=rnorm(10)) > datID 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 El 16 de febrero de 2013 19:58, Fernando Macedo <fermace@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@r-project.org > https://stat.ethz.ch/mailman/**listinfo/r-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es> >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
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@gmail.com > <mailto:fermace@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@r-project.org <mailto:R-help-es@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]]
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 >
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 >>
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
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@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@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@gmail.com > > >>> <mailto:fermace@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@r-project.org <mailto:R-help-es@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@r-project.org > > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > > >> > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >[[alternative HTML version deleted]]
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 > > > > >
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 > > > > > > > > > > > > > > >