R

Nueva versión de paquete colbycol

R

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.

Anuncio de las III Jornadas de usuarios de R

R

Más que me complace anunciar públicamente la convocatoria de las III Jornadas de usuarios de R, que tendrán lugar los días 17 y 18 de noviembre en la Escuela de Organización Industrial, Madrid.

Los interesados en asistir, participar y patrocinar —y subrayo lo de patrocinar— podrán encontrar los detalles en la página de las jornadas.

Desde esta bitácora, además, quiero invitar muy especialmente a los usuarios y entusiastas de R que trabajan en empresas e instituciones ajenas al mundo académico a aportar su peculiar visión sobre el universo de usos, aplicaciones y experiencias con el lenguaje.

R y Excel: una alternativa

R

Los amantes de Excel están de enhorabuena. Ahora tienen una alternativa a RExcel, una extensión de Excel que le permite interactuar con R: XLConnect, un paquete multiplataforma de R que permite:

  • Trabajar con ficheros de Excel 97 (.xls) y OOXML (.xlsx)
  • Crear y eliminar hojas dentro de documentos
  • Leer y escribir rangos de valores (ranges)
  • Leer y escribir hojas de cálculo
  • Añadir gráficos
  • Asociar estilos a celdas
  • Definir el tamaño de las filas y columnas
  • Etc.

Está basado en Apache POI, una colección de librerías de Java que permiten manipular ficheros en los formatos más o menos propietarios de Microsoft. Así no es siquiera necesario tener Excel instalado. ¡Ni siquiera trabajar en Windows!

Ya no si sino cuánto

R

Ya no te preguntan si usas R. Es el signo de los tiempos: ahora te preguntan cuánto; ahora te preguntan si lo usas siempre, casi siempre, a veces, poco y, para los raritos, si no lo usas nunca.

¿Dónde? En las famosas encuestas de Kdnuggets.

¡A ver cuándo vemos un estudio de uso de R por países que nos rojigualdee la cara!

Paréntesis, llaves y rendimiento en R

R

Conforme se populariza el uso de R, cobran creciente importancia las cuestiones concernientes a su rendimiento, su gestión de la memoria, etc. Hasta el punto que incluso uno de sus creadores, Ross Ihaka, ha expresado últimamente su descontento con las limitaciones de R (el enlace es gentileza de Daniel Castro) sugiriendo que sus componentes puramente estadísticos deberían construirse sobre la base de un lenguaje distinto, posiblemente Lisp.

Dentro de este contexto de preocupación sobre el rendimiento de R, han aflorado algunas cuestiones acerca de la eficiencia del intérprete a la hora de resolver expresiones matemáticas. Por ejemplo, Radford Neal estudió el desigual desempeño de R frente a ciertas expresiones matemáticas equivalentes: en particular, la expresión

R, HDF5 y bases de datos orientadas a columnas

R

Tras escribir el otro día sobre RevoscaleR, he tropezado con un paquete de R, HDF5 que le permite hacer cosas parecidas usando tecnologías libres. Puede encontrarse más información sobre HDF5 en la Wikipedia y en la página del proyecto.

De todos modos, y como dejé escrito como respuesta a un comentario en la entrada que indico más arriba, una solución definitiva al problema del análisis de conjuntos de datos grandes con R podría venir de la mano de una integración adecuada con un gestor de bases de datos orientado a columnas. En efecto, el cuello de botella más notable que existe al usar R junto con, p.e., Postgres (y como Postgres el 99% de los restantes DBMS) es que sus tablas son conjuntos de filas mientras que para R son listas de colunmas. Por tanto, quiérase o no, en algún sitio hay que realizar una trasposición computacionalmente pesada.

¿Cómo mejorar tu estilo de programación en R?

R

En un hilo reciente en la lista de desarrollo de R ha habido una discusión interesante acerca de buenas prácticas a la hora programar con R y concretamente, para desarrollar paquetes que contuviesen llamadas a código desarrollado en C/C++.

En particular, el autor del primer mensaje del hilo criticaba varios usos que consideraba inadecuados a la hora de programar en R:

  1. El uso de variables misteriosas surgidas de la nada. En particular, el uso de variables que aparecen en el cuerpo de la función pero que no han pasado como argumentos.
  2. El uso de <<-
  3. El uso de bucles for cuando el código podía haberse vectorizado.
  4. El uso de return al final de una función
  5. Código desordenado y antiestético. En particular, el no dejar que respire mediante el uso de espacios.

Al respecto, Hadley Wickham, recomendó leer los consejos que ha recogido en su wiki. Gabor Grothendieck recomendó una discusión en Stackexchange.

Los dinosaurios y R: dos enlaces

R

Quiero compartir con mis lectores dos enlaces relacionados. Puede que a alguno le interese su sustancia misma. A mí no tanto. A mí me interesan en cuanto que ilustran la emergencia de R y el papel protagónico que está asumiendo en el universo de las cosas analíticas. Tan protagónico que hasta dos viejos dinosaurios pasan voluntariamente por su aro.

Tradicionalmente, para analizar grandes bases de datos empresariales, se realizaba en primer lugar una extracción masiva de datos. Luego se procesaban con herramientas específicas (SAS, por ejemplo). En muchas ocasiones los resultados eran volcados nuevamente en el sistema de partida.

Nuevos comentarios sobre RevoScaleR

R

El reto lanzado por Revolution Analytics a SAS está relacionado con el lanzamiento por parte de la primera empresa de un paquete, RevoScaleR, diseñado para permitir el análisis de conjuntos de datos grandes. La lectura más detallada de uno de los pocos documentos técnicos que circulan sobre el paquete me invita a compartir con mis lectores mis impresiones más allá de las primeras y más someras que realicé hace unos días.

La primera es que sigo sin entender claramente cómo es y cómo funciona el nuevo formato de almacenamiento de tablas, XDF. Al menos, no es público. Aunque es un tema de investigación candente (de lo que son prueba esto, esto, esto o el mismo paquete ff de R), no está claro si reaprovecha desarrollos previos o si es una implementación desde cero.

RStudio, un nuevo editor multiplataforma para R

R

Noticia fresca, recién salida del horno: RStudio acaba de salir a la luz. Se trata de un nuevo editor multiplataforma y de código abierto de R .

Está desarrollado en C++ y corre en Linux, Windows y Mac OS X. Y no puedo decir mucho más de momento. Pero espero los comentarios de todos los entusiastas de R al respecto.