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.

4 comentarios sobre “Nueva versión de paquete colbycol

  1. Alex Johann Zambrano 7 abril, 2011 18:30

    Hola Carlos hace rato leo tu blog, y he notado que has realizado tu paquete utilizando la plataforma del R-Forge. Me gustaría saber si nos puedes regalar un tutorial de como crear un paquete bajo este esquema y como puedo formar un grupo de trabajo para que todos trabajemos en un paquete. Espero me puedas colaborar. Un saludo.

  2. datanalytics 7 abril, 2011 18:37

    @Alex Johann Zambrano
    Gracias por tu comentario. Precisamente, cuando hace un año estuve en la U. Nacional (de Bogotá), el profesor Campo Elías Pardo acababa de dar una charla sobre creación de paquetes con R.

    Hablé con él del asunto y observé que teníamos posturas un tanto distintas: yo uso Linux y él Windows; yo me decantaba por usar las facilidades que proporciona r-forge y él prefería hacerlo todo en su máquina. ¡Para gustos están los colores!

    Pero creo que usar r-forge tiene muchas ventajas y si realmente hay interés en que escriba un pequeño tutorial sobre cómo utilizarlo, me pondré manos a la obra.

    ¡Gracias por tu comentario!

  3. Alex Johann Zambrano 8 abril, 2011 13:42

    @datanalytics
    Precisamente Carlos, reconozco que las ventajas de trabajar bajo la idea de R-forge son mucho mejor, sin embargo, no entiendo algunas cosas, como por ejemplo lo de subversiones. Por eso te comento que no caería nada mal un tutorial de esto y personalmente estoy muy interesado por aprender de esto.

    Desde Colombia te mando un saludo. Muchos éxitos.

Los comentarios están desabilitados.