[R-es] Reducción de tiempo en lectura de datos

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Dic 8 22:54:07 CET 2009


Además, si lees

?read.table

con detenimiento, verás que dice lo siguiente:

      Using ‘comment.char = ""’ will be appreciably faster than the
      ‘read.table’ default.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com


Jorge Ivan Velez wrote:
> Francisco,
> 
> Muchas gracias por el 'tip'!    Indudablemente definir el argumento
> colClasses de antemano reduce el tiempo de lectura en más del 50%. Estos son
> los resultados con el mismo archivo:
> 
> R> system.time(X <- read.table(f, header = TRUE,
>                   colClasses = c(rep('character', 2), rep('numeric',9)),
> sep= ","))
>    user  system elapsed
>    6.65    0.08    7.27
> 
> He estado explorando una posibilidad con scan() pero no he tenido éxito aún.
> El argumento 'what' parece ser el problema. La opción que mencionas con
> readLines() es importante. La exploraré luego.
> 
> En espera de otros comentarios,
> 
>                                          Jorge Ivan Velez
> 
> 
> 2009/12/8 Francisco J. Zagmutt <>
> 
>>  Hola Jorge,
>>
>> La manera más fácil es especificar la clase de los datos de cada columna
>> usando colClasses.  De esa manera R no tiene que  establecer las clases
>> programáticamente.  Si quieres un proceso aún más rápido revisa ?scan.
>> También puedes leer los datos en "chunks¨ usando readLines.
>>
>> Saludos,
>>
>> Francisco
>>
>> Francisco J. Zagmutt
>> Vose Consulting
>> 1643 Spruce St., Boulder
>> Boulder, CO, 80302
>> USA
>> www.voseconsulting.com
>>
>>
>> Jorge Ivan Velez wrote:
>>
>> Buenas tardes para todos,
>>
>> Utilizo R 2.10.0 Patched en Windows XP 32-bits con 4GB RAM en un procesador
>> Intel Core 2 Duo de 2.4 GHz. En este momento estoy trabajando con una base
>> de datos X de dimensión
>>
>> R> dim(X)
>> [1] 297558     11
>>
>> que se encuentra almacenada en formato ".txt" y que tiene 1 variable
>> alfanumérica (identificador) y 10 numéricas. Estoy leyendo X via
>> read.table() y el tiempo tarda el sistema es:
>>
>> R> system.time(X <- read.table(f, header = TRUE, sep= ","))
>>    user  system elapsed
>>   17.50    0.11   18.59
>>
>> Me gustaría saber si alguien conoce alguna manera de reducir
>> (sustancialmente) este tiempo.
>>
>> Muchas gracias,
>>
>>                                Jorge Ivan Velez
>>
>> 	[[alternative HTML version deleted]]
>>
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> R-help-es mailing listR-help-es en r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-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



Más información sobre la lista de distribución R-help-es