Miguel Astor Varela
2012-Jan-28 20:33 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola, Estoy intentando leer ficheros csv bastante grandes (más un 1 Giga). Hasta ahora con archivos más pequeños siempre he utilizado la función read.csv y me ha funcionado bastante bien, pero a partir de ese tamaño el R se me queda bloqueado. Además, el ordenador que tengo no es nada potente. He probado con la función scan pero tengo un problema. Los ficheros csv son campos numéricos con decimales salvo un campo que es una letra. Alguien me podría recomendar alguna otra función para leer esos ficheros? Muchas gracias [[alternative HTML version deleted]]
Marcuzzi, Javier Rubén
2012-Jan-28 20:49 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Miguel ¿Cuántos gigas de ram tiene disponible? Si usted utiliza una archivo mayor a 1 Gb, ¿cuántos Gb son requeridos por R? Pero debe haber alguna alternativa, en este lugar http://cran.r-project.org/web/views/HighPerformanceComputing.html señalan posibilidades, pero escapa a mi experiencia. Javier -----Mensaje original----- From: Miguel Astor Varela Sent: Saturday, January 28, 2012 5:33 PM To: r-help-es en r-project.org Subject: [R-es] Leer ficheros csv muy grandes (más de un 1 Giga) Hola, Estoy intentando leer ficheros csv bastante grandes (más un 1 Giga). Hasta ahora con archivos más pequeños siempre he utilizado la función read.csv y me ha funcionado bastante bien, pero a partir de ese tamaño el R se me queda bloqueado. Además, el ordenador que tengo no es nada potente. He probado con la función scan pero tengo un problema. Los ficheros csv son campos numéricos con decimales salvo un campo que es una letra. Alguien me podría recomendar alguna otra función para leer esos ficheros? Muchas gracias [[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
Esteban Moro Egido
2012-Jan-28 20:56 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola Miguel
Desde luego depende de la memoria que tengas en la máquina. Aún así lo que
preguntas creo que se puede hacer utilizando "what" en scan.
datos <- scan("fichero.dat",what=list(" ","
",0))
La idea es la siguiente: la lista que va en el what da una descripción de cómo
son las columnas que tienes. Pon un " " por cada columna alfanumérica
y un 0 por una columna numérica. En el ejemplo anterior tendrías 2 columnas
alfanumérica y una numérica.
Un saludo
El 28/01/2012, a las 21:33, Miguel Astor Varela escribió:
> Hola,
> Estoy intentando leer ficheros csv bastante grandes (más un 1 Giga). Hasta
> ahora con archivos más pequeños siempre he utilizado la función read.csv y
> me ha funcionado bastante bien, pero a partir de ese tamaño el R se me
> queda bloqueado. Además, el ordenador que tengo no es nada potente.
>
> He probado con la función scan pero tengo un problema. Los ficheros csv son
> campos numéricos con decimales salvo un campo que es una letra.
>
> Alguien me podría recomendar alguna otra función para leer esos ficheros?
> Muchas gracias
>
> [[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
Esteban Moro Egido
Dept. Mathematics | Universidad Carlos III de Madrid
Tel.: (+34) 916248727 · markov.uc3m.es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20120128/be12a627/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 4225769.PNG
Type: image/png
Size: 2068 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20120128/be12a627/attachment.png>
Carlos Ortega
2012-Jan-28 22:26 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola Miguel, Efectivamente la memoria RAM que tengas en tu equipo es un limitante para la carga del fichero. Pero hay alternativas: - ¿Necesitas todas las columnas del fichero? ¿Puedes pre-seleccionar algunas antes de leerlo en R y así reducir su tamaño? - Recientemente se ha liberado un paquete en R que está pensado justamente para lo que buscas: "LaF". ########################### Fast access to large ASCII filesDescription The package provides methods for fast and efficient access of large ASCII files (fixed width and csv files). It is assumed that the files are too large to be read into memory completely. The package therefore contains methods for blockwise processing of these files and methods for reading subsets of data (rows and/or columns) from these files. ########################### Saludos, Carlos Ortega www.qualityexcellence.es El 28 de enero de 2012 21:33, Miguel Astor Varela <mastorvarela@gmail.com>escribió:> Hola, > Estoy intentando leer ficheros csv bastante grandes (más un 1 Giga). Hasta > ahora con archivos más pequeños siempre he utilizado la función read.csv y > me ha funcionado bastante bien, pero a partir de ese tamaño el R se me > queda bloqueado. Además, el ordenador que tengo no es nada potente. > > He probado con la función scan pero tengo un problema. Los ficheros csv son > campos numéricos con decimales salvo un campo que es una letra. > > Alguien me podría recomendar alguna otra función para leer esos ficheros? > Muchas gracias > > [[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-Jan-29 08:03 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola Miguel, Como otros ya han mencionado, scan() es una muy buena opcion, asi como la funcion read.csv() con su argumento colClasses definido de manera adecuada. Desafortunadamente, la memoria RAM y la arquitectura del sistema operativo (32- vs. 64-bits) tambien juegan un papel importante. Por cierto, que OS estas utilizando? es de 32- o 64-bits? cuanta memoria RAM tienes disponible? Si estas en 32 bits hay ciertos limites para la cantidad de RAM que puedes usar (ver [1]) Hace algun tiempo tuve un problema similar (ver [2]). La solucion en ese entonces fue cambiarme a Linux para procesar el archivo y luego volver a XP para continuar con los analisis. Espero que las respuestas que alli aparecen, en conjunto con la sugerencia de Carlos Ortega de utilizar LaF, ayuden a solucionar tu problema. Un saludo, Jorge.- [1] http://cran.r-project.org/bin/windows/rw-FAQ.html#There-seems-to-be-a-limit-on-the-memory-it-uses_0021 [2] http://r.789695.n4.nabble.com/How-to-read-HUGE-data-sets-td850278.html 2012/1/28 Miguel Astor Varela <>> Hola, > Estoy intentando leer ficheros csv bastante grandes (más un 1 Giga). Hasta > ahora con archivos más pequeños siempre he utilizado la función read.csv y > me ha funcionado bastante bien, pero a partir de ese tamaño el R se me > queda bloqueado. Además, el ordenador que tengo no es nada potente. > > He probado con la función scan pero tengo un problema. Los ficheros csv son > campos numéricos con decimales salvo un campo que es una letra. > > Alguien me podría recomendar alguna otra función para leer esos ficheros? > Muchas gracias > > [[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]]
Pedro Concejero Cerezo
2012-Jan-30 09:53 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola, recientemente yo tuve un problema similar, que colapsaba la memoria de mi
máquina (16GB RAM) y probé bigmemory, que tiene una función read.big.matrix, que
leyó el fichero sin ningún problema y a velocidad récord. La limitación es que
el objeto generado es una big.matrix, con tipos de variables como en C, y
requiere de funciones biganalytics para hacer cálculos y manipulaciones sobre
ellas. Pero de verdad, probadlo, yo probé bigKmeans y me sorprendió sobre todo
la velocidad. Además hay librerías para modelos lineales y no lineales, y para
manipulaciones básicas de ficheros.
Saludos,
Pedro
El 2012-01-29 9:03,
r-help-es-request@r-project.org<mailto:r-help-es-request@r-project.org>
escribió:
----------------------------------------------------------------------
Message: 1
Date: Sat, 28 Jan 2012 21:33:12 +0100
From: Miguel Astor Varela
<mastorvarela@gmail.com><mailto:mastorvarela@gmail.com>
To: r-help-es@r-project.org<mailto:r-help-es@r-project.org>
Subject: [R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Message-ID:
<CACk-0rKWnaCHSBM+WF-8adQqjTbJFsaMGCfH6zoEpY=cYp8-vw@mail.gmail.com><mailto:CACk-0rKWnaCHSBM+WF-8adQqjTbJFsaMGCfH6zoEpY=cYp8-vw@mail.gmail.com>
Content-Type: text/plain
Hola,
Estoy intentando leer ficheros csv bastante grandes (más un 1 Giga). Hasta
ahora con archivos más pequeños siempre he utilizado la función read.csv y
me ha funcionado bastante bien, pero a partir de ese tamaño el R se me
queda bloqueado. Además, el ordenador que tengo no es nada potente.
He probado con la función scan pero tengo un problema. Los ficheros csv son
campos numéricos con decimales salvo un campo que es una letra.
Alguien me podría recomendar alguna otra función para leer esos ficheros?
Muchas gracias
[[alternative HTML version deleted]]
--
Pedro Concejero
Telefónica I+D <http://www.tid.es/>
User Modeling - Analytics
E-mail: pedro.concejero@tid.es<mailto:pedro.concejero@tid.es>
skype: pedro.concejero
linkedin http://www.linkedin.com/in/pedroconcejero/es
________________________________
Este mensaje se dirige exclusivamente a su destinatario. Puede consultar nuestra
política de envío y recepción de correo electrónico en el enlace situado más
abajo.
This message is intended exclusively for its addressee. We only send and receive
email on the basis of the terms set out at
http://www.tid.es/ES/PAGINAS/disclaimer.aspx
[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2012-Jan-30 22:02 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola, ¿qué tal? Si tu fichero tiene muchas columnas y sobre todo si muchas de ellas son numéricas/categóricas, puedes usar el paquete colbycol que lee ficheros columna a columna. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Miguel Astor Varela
2012-Feb-11 19:54 UTC
[R-es] Leer ficheros csv muy grandes (más de un 1 Giga)
Hola, Muchisimas gracias a todos por vuestra ayuda. Os cuento sobre mi equipo ...es una castaña de equipo con 2 Gigas de RAM y con Windows 7...por lo que ya veis que estoy bastante limitado de capacidad. He logrado leer los ficheros finalmente con read.csv y con la ayuda de colClasses logro filtrar algunas columnas que no necesito, por lo que de momento me es suficiente para los analisis que estoy realizando. He probado con scan pero no sé porque me da un error con un separador ; cuando todo está separado con |. El colbycol no le probado pero seguro que lo tendré que utilizar más adelante. Muchas gracias de nuevo! El 30 de enero de 2012 23:02, Carlos J. Gil Bellosta <cgb@datanalytics.com>escribió:> Hola, ¿qué tal? > > Si tu fichero tiene muchas columnas y sobre todo si muchas de ellas > son numéricas/categóricas, puedes usar el paquete colbycol que lee > ficheros columna a columna. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]