R

Receta: Integrar R y MySQL 19 julio, 2011

Vamos a por una receta rápida que permite ejecutar desde el entorno R sentencias SQL contra una BD MySQL remota (así te ahorras tener que ejecutar las sentencias en MySQL, exportar el resultado e importarlo luego en R)

Primero, asumo que la BD es remota y no hay acceso directo (el puerto 3306 está filtrado) PERO sí tenemos acceso vía SSH. Así que construyo un túnel SSH contra MySQL (en un extremo del túnel tenemos localhost, escuchando en el puerto 3307. En el otro extremo, MySQL en su servidor, escuchando en el puerto habitual, 3306)

Ok, ahora vamos a instalar la magia: el paquete r-cran-rmysql permite lanzar sentencias SQL contra una BD MySQL remota. Y lo tenemos paquetizado en Ubuntu 🙂

Para que las conexiones a MySQL desde R no requieran que tengamos que acordarnos continuamente del login, pass, db, etc. las apuntamos en my.cnf

¡Listo! Que empiece la fiesta:

La primera línea carga el entorno R. La segunda carga la biblioteca RMySQL. La tercera lista las tablas de la BD.

¿Más ejemplos?

La primera línea lanza una consulta SQL. La segunda recoge los resultados (50 tuplas para empezar). La tercera muestra la primera fila de esos resultados. Para recoger TODOS los resultados/tuplas, podríamos haber hecho:

Las consultas también pueden lanzarse y visualizarse directamente así:

Finalmente, si no quieres crear un fichero /etc/mysql/my.cnf, también puedes pasar los datos directamente desde la línea de comandos:

Para más detalles, RTFM 😉

Bonus: R insiste en mostrar los resultados sólo a 80 columnas. Si tienes una pantalla grande, igual te interesa saber que a R se le puede indicar que hay espacio de sobra 🙂 así :

Categorias diariolinux R

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *