Jorge I Velez
2012-Oct-11 13:28 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Apreciados miembros de R-help-es, Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K columnas. Especificamente, me gustaria utilizar R (u otro programa GNU, si es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es> sessionInfo()R version 2.15.0 Patched (2012-04-18 r59094) Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base Muchas gracias, Jorge.- [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2012-Oct-11 13:36 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Una manera "cutre" sería leer sólo 2000, p.e., caracteres de cada fila y luego leer las posiciones que te interesan, que casi seguro, por ser de las primeras, están dentro de esos 2000 caracteres. Eso se puede hacer desde R (con readLines, por ejemplo). Un fichero de texto con separadores no es eficiente en el sentido de que ni R ni nadie sabe en qué posición están los EOL. Hay que leerlo todo. Tengo un paquete en CRAN, colbycol, que funcionaría bien en tu contexto: muchísimas columnas y pocas filas. Pero aunque te permite leer sólo "ciertas" columnas, es cierto que tiene un preproceso en el que lee el fichero completo, como no podría ser de otra manera. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 11 de octubre de 2012 15:28, Jorge I Velez <jorgeivanvelez en gmail.com> escribió:> Apreciados miembros de R-help-es, > > Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K > columnas. Especificamente, me gustaria utilizar R (u otro programa GNU, si > es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y > exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. > > Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es > >> sessionInfo() > R version 2.15.0 Patched (2012-04-18 r59094) > Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > Muchas gracias, > Jorge.- > > [[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
Carlos Ortega
2012-Oct-11 13:40 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Hola, Con awk/gawk esta selección es inmediata de programar, vaya sobre la misma línea de comandos de la consola lo puedes ejecutar...(una línea)... Saludos, Carlos Otega www.qualityexcellence.es El 11 de octubre de 2012 15:28, Jorge I Velez <jorgeivanvelez@gmail.com>escribió:> Apreciados miembros de R-help-es, > > Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K > columnas. Especificamente, me gustaria utilizar R (u otro programa GNU, si > es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y > exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. > > Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es > > > sessionInfo() > R version 2.15.0 Patched (2012-04-18 r59094) > Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > Muchas gracias, > Jorge.- > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Jorge I Velez
2012-Oct-11 13:42 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Gracias, Carlos. No habia pensado en una solucion usando readLines(). Lo intentare y reportare de nuevo a la lista los resultados. --JIV 2012/10/12 Carlos J. Gil Bellosta <>> Una manera "cutre" sería leer sólo 2000, p.e., caracteres de cada fila > y luego leer las posiciones que te interesan, que casi seguro, por ser > de las primeras, están dentro de esos 2000 caracteres. Eso se puede > hacer desde R (con readLines, por ejemplo). > > Un fichero de texto con separadores no es eficiente en el sentido de > que ni R ni nadie sabe en qué posición están los EOL. Hay que leerlo > todo. > > Tengo un paquete en CRAN, colbycol, que funcionaría bien en tu > contexto: muchísimas columnas y pocas filas. Pero aunque te permite > leer sólo "ciertas" columnas, es cierto que tiene un preproceso en el > que lee el fichero completo, como no podría ser de otra manera. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > > El día 11 de octubre de 2012 15:28, Jorge I Velez > <> escribió: > > Apreciados miembros de R-help-es, > > > > Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K > > columnas. Especificamente, me gustaria utilizar R (u otro programa GNU, > si > > es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y > > exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. > > > > Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es > > > >> sessionInfo() > > R version 2.15.0 Patched (2012-04-18 r59094) > > Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) > > > > locale: > > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > > > attached base packages: > > [1] stats graphics grDevices utils datasets methods base > > > > Muchas gracias, > > Jorge.- > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Jorge I Velez
2012-Oct-11 13:44 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Hola Carlos. Gracias por tu respuesta. Alguna vez alguien me menciono awk/gawk para hacer algo similar pero honestamente no me puse en la tarea de aprender. Disculpa mi atrevimiento, pero tenes algun ejemplo donde se haga algo similar a la situacion que acabo de plantear? Muchas gracias! --JIV 2012/10/12 Carlos Ortega <>> Hola, > > Con awk/gawk esta selección es inmediata de programar, vaya sobre la misma > línea de comandos de la consola lo puedes ejecutar...(una línea)... > > Saludos, > Carlos Otega > www.qualityexcellence.es > > El 11 de octubre de 2012 15:28, Jorge I Velez <jorgeivanvelez@gmail.com>escribió: > >> Apreciados miembros de R-help-es, >> >> Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K >> columnas. Especificamente, me gustaria utilizar R (u otro programa GNU, >> si >> es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y >> exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. >> >> Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es >> >> > sessionInfo() >> R version 2.15.0 Patched (2012-04-18 r59094) >> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) >> >> locale: >> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> Muchas gracias, >> Jorge.- >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]
Carlos Ortega
2012-Oct-11 13:55 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Hola, Sería algo así como: gawk '' { print $1, $2, $6 } '' fichero_entrada > fichero_salida Para gawk el separador natural es el espacio. Si no es así tienes que indicarle cuál es el separador. Y cada campo se obtiene con el símbolo "$". Otra opción, que recuerdo vagamente, es utilizar el comando "cut" pero no recuerdo el detalle de su sintaxis. Saludos, Carlos Ortega www.qualityexcellence.es El 11 de octubre de 2012 15:44, Jorge I Velez <jorgeivanvelez@gmail.com>escribió:> Hola Carlos. Gracias por tu respuesta. Alguna vez alguien me menciono > awk/gawk para hacer algo similar pero honestamente no me puse en la tarea > de aprender. Disculpa mi atrevimiento, pero tenes algun ejemplo donde se > haga algo similar a la situacion que acabo de plantear? Muchas gracias! > --JIV > > > 2012/10/12 Carlos Ortega <> > > Hola, >> >> Con awk/gawk esta selección es inmediata de programar, vaya sobre la >> misma línea de comandos de la consola lo puedes ejecutar...(una línea)... >> >> Saludos, >> Carlos Otega >> www.qualityexcellence.es >> >> El 11 de octubre de 2012 15:28, Jorge I Velez <jorgeivanvelez@gmail.com>escribió: >> >>> Apreciados miembros de R-help-es, >>> >>> Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K >>> columnas. Especificamente, me gustaria utilizar R (u otro programa GNU, >>> si >>> es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y >>> exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. >>> >>> Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es >>> >>> > sessionInfo() >>> R version 2.15.0 Patched (2012-04-18 r59094) >>> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) >>> >>> locale: >>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> Muchas gracias, >>> Jorge.- >>> >>> [[alternative HTML version deleted]] >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >> >> >> >> -- >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Jorge I Velez
2012-Oct-11 14:15 UTC
[R-es] Seleccionar de columnas de un conjunto de datos
Perfecto! Muchas gracias, Carlos. Este es el comando que utilice (Mac OS X): setwd("~/Desktop") system("awk '' { print $1, $2, $6 } '' mdd.ped > mdd.phen") Y este el resultado de system.time(): user system elapsed 11.277 0.330 12.276 Definitivamente mucho mas rapido, eficiente, y versatil (sin mencionar lo amigable con la RAM) que mi aproximacion via read.table(); solo para leer los datos esta tardaba ~30X lo que ahora tarda awk haciendo el proces completo. Un saludo, Jorge.- 2012/10/12 Carlos Ortega <>> Hola, > > Sería algo así como: > > gawk '' { print $1, $2, $6 } '' fichero_entrada > fichero_salida > > Para gawk el separador natural es el espacio. Si no es así tienes que > indicarle cuál es el separador. > Y cada campo se obtiene con el símbolo "$". > > Otra opción, que recuerdo vagamente, es utilizar el comando "cut" pero no > recuerdo el detalle de su sintaxis. > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 11 de octubre de 2012 15:44, Jorge I Velez <> escribió: > > Hola Carlos. Gracias por tu respuesta. Alguna vez alguien me menciono >> awk/gawk para hacer algo similar pero honestamente no me puse en la tarea >> de aprender. Disculpa mi atrevimiento, pero tenes algun ejemplo donde se >> haga algo similar a la situacion que acabo de plantear? Muchas gracias! >> --JIV >> >> >> 2012/10/12 Carlos Ortega <> >> >> Hola, >>> >>> Con awk/gawk esta selección es inmediata de programar, vaya sobre la >>> misma línea de comandos de la consola lo puedes ejecutar...(una línea)... >>> >>> Saludos, >>> Carlos Otega >>> www.qualityexcellence.es >>> >>> El 11 de octubre de 2012 15:28, Jorge I Velez <jorgeivanvelez@gmail.com>escribió: >>> >>>> Apreciados miembros de R-help-es, >>>> >>>> Estoy trabajando con un archivo de texto que contiene ~10K filas y ~120K >>>> columnas. Especificamente, me gustaria utilizar R (u otro programa >>>> GNU, si >>>> es el caso) para seleccionar solo las columnas 1, 2 y 6 de ese archivo y >>>> exportarlas como un nuevo archivo. Cualquier sugerencia es bienvenida. >>>> >>>> Trabajo en Mac OS X (10.6.8, Snow Leopard) y mi sessionInfo() es >>>> >>>> > sessionInfo() >>>> R version 2.15.0 Patched (2012-04-18 r59094) >>>> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) >>>> >>>> locale: >>>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> Muchas gracias, >>>> Jorge.- >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> R-help-es@r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> >>> >>> >>> >>> -- >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >> >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]