1) El manual de importación/exportación R debe ser el primer puerto de escala para preguntas sobre la importación de datos: hay muchas opciones y lo que funcionará para usted podría ser muy específico.
http://cran.r-project.org/doc/manuals/R-data.html
read.table
rendimiento específicamente ha mejorado en gran medida si se utilizan las opciones proporcionadas a la misma, en particular colClasses
, comment.char
y nrows
- esto se debe a que esta información tiene que ser deducido de los datos en sí, que puede ser costoso .
2) Existe un límite específico para la longitud (número total de elementos) para cualquier vector, matriz, matriz, columna en un data.frame o lista.Esto se debe a un índice de 32 bits utilizado bajo el capó, y es cierto para 32 bits y 64 bits R. El número es 2^31 - 1. Este es el número máximo de filas para un data.frame, pero es tan grande que es mucho más probable que se quede sin memoria incluso para vectores individuales antes de comenzar a recopilar varios de ellos.
Ver help(Memory-limits)
y help(Memory)
para más detalles.
Un solo vector de esa longitud tomará muchos gigabytes de memoria (depende del tipo y modo de almacenamiento de cada vector - 17.1 para numérico) por lo que es poco probable que sea un límite adecuado a menos que realmente esté presionando cosas. Si realmente necesita pasar las cosas por la memoria del sistema disponible (aquí es obligatorio 64 bits), vale la pena considerar las técnicas de base de datos estándar descritas en el manual de importación/exportación o las opciones de archivo asignadas en memoria (como el paquete ff
). La Computación de alto rendimiento CRAN Task View High Performance es un buen recurso para este fin de cosas.
Por último, si usted tiene pilas de memoria RAM (16 GB o más) y necesitan 64 bits indexación que podría venir en una versión futura de R. http://www.mail-archive.com/[email protected]/msg92035.html
Además, Ross Ihaka se analizan algunas de las decisiones históricas y futuro instrucciones para un R como el lenguaje en los documentos y habla aquí: http://www.stat.auckland.ac.nz/~ihaka/?Papers_and_Talks
la [vista de tareas de alto rendimiento] (http: //cran.r-project .org/web/views/HighPerformanceComputing.html) seguramente responderá algunas de estas preguntas. – Chase
Rcpp es una biblioteca de C++ que envuelve la API de R C y RInside proporciona la funcionalidad para llamar a R desde el código de C++. Es decir, ambos están restringidos por R. –
http://stackoverflow.com/questions/1727772/quickly-reading-very-large-tables-as-dataframes-in-r –