Me llamo Jesús Armand y desde hace unos meses formo parte del equipo de Frogtek como científico de datos. Desde mi llegada, la compañía ha comenzado a utilizar nuevas herramientas en su día a día. Es por ello que a partir de ahora intentaré escribir sobre trucos, pequeños tutoriales o problemas con los que nos encontremos.
Cuando se trabaja con datos, a veces nos encontramos con la necesidad de ejecutar distintos códigos o comandos en diferentes herramientas. Por ejemplo, podemos estar trabajando con una base de datos en MySQL para extraer cierta información que queremos filtrar con algún método implementado en Python y ese resultado representarlo en un gráfico utilizando el paquete ggplot2. Resulta engorroso el proceso de crear, guardar y volver a abrir un fichero en las distintas etapas del proceso.
Es por ello que R a veces nos ayuda a simplificar todas estas tareas y a hacerlas más sencillas. Por ejemplo, con el paquete RMySQL podemos conectarnos de forma rápida con nuestra base de datos y realizar las consultas directamente desde la consola de R y guardar los resultados para, posteriormente, trabajar con el paquete rPython, creado por Carlos Gil Bellosta. En él podremos llamar fácilmente a las funciones desarrolladas en código Python y, finalmente, con las variables almacenadas en nuestro workspace en R, representar gráficamente la información que deseábamos en un principio con ggplot2.
Hoy nos centraremos en un pequeño ejemplo para interactuar con estos dos últimos paquetes: rPython y ggplot2.
El ejemplo va a consistir en, dado un vector con 83 valores, utilizar el método MADe para la detección y eliminación de valores extremos implementado en Python y representar el resultado en un histograma con el paquete ggplot2. El fichero datos-ejemplo- tiene los datos que necesitaremos. Os animo a que implementéis vosotros el código en Python.
Si no tenemos instalados en R los paquetes que necesitamos, ejecutaremos:
install.packages("rPython")
install.packages("ggplot2")
Los paquetes en R se cargan de la siguiente forma:
library("rPython")
library("ggplot2")
El primer paso será indicar a R con qué fichero .py vamos a trabajar. Para ello ejecutaremos el comando:
python.load("statistical_formulas.py" )
donde el atributo es el nombre del fichero que contiene nuestra función (o funciones).
La función que hemos definido necesita de una sola variable con datos en la llamada. En este caso será el vector X:
python.call("remove_outliers_MADe_method", X)
donde el primer argumento es el nombre la función/método que tenemos en nuestro código y el segundo atributo es nuestro vector.
El resultado de la ejecución de esta llamada lo almacenaremos en la variable resultado.
Finalmente, sólo nos quedará invocar la función gplot() en ggplot2 para representar gráficamente un histograma:
qplot(resultado, geom="histogram")
Como habéis visto, el procedimiento es muy sencillo. Ahora, os animo a que implementéis vosotros mismos el algoritmo MADe para comparar el resultado.