Nueva versión de paquete colbycol
Hace unos días subí a CRAN la última versión de mi paquete colbycol
. Incluí algunas mejoras sugeridas por uno de sus usuarios así como otras que estaban esperando a que liberase mi agenda. Además, añadí un pequeño tutorial en la página del paquete.
El paquete colbycol
está pensado para resolver —aunque sólo sea parcialmente— uno de los problemas más acuciantes de quienes usamos R para el análisis de datos muy grandes: leer ficheros de datos de gran tamaño.
Es típico que R necesite tres veces más RAM que el tamaño del fichero de texto que se quiere leer durante la importación. Esto se debe a que la información en el disco está ordenada por filas mientras que R almacena los datos en la memoria en columnas. En algún punto tiene que realizarse la transposición. Y transponer datos es una operación que exige mucho espacio en memoria. (Puede que alguno de mis lectores caiga en la cuenta de que bastaría con el doble de espacio, no el triple: el que ocupe el fichero de origen y el que ocupe el objeto traspuesto; pero ésa es otra historia).
El paquete colbycol
permite realizar la trasposición en disco: usa Java para leer el fichero de entrada línea a línea y guarda cada registro en un fichero de texto distinto. Luego R lee los ficheros de texto (que corresponden a las columnas) individualmente. El objeto que se crea finalmente guarda metadatos sobre los ficheros temporales que se crean. Y es posible construir data.frames
habituales a partir de ellos.
En la página del paquete ofrezco un paseo completo por las distintas que va desde la creación de un fichero grande a su lectura en R.
Invito a mis lectores a echarle un vistazo y espero que a alguno de ellos le resuelva alguna vez alguno de esos problemas tan odiosos que plantea la lectura de ficheros de texto descomunales.