R avanzado: Consejos para programar como un pro en R
Según un artículo publicado por forbes en 2016, cerca del 80% del tiempo de un proyecto relacionado con datos se dedica a la obtención y preparación de los datos. A la vez, es la parte que menos disfrutamos los científicos de datos.
Cuando comienzas el proyecto seguramente sabes lo que hay que hacer una vez que tengas la data perfecta. Sin embargo, quedan tres retos:
- Obtener la data
- Data wrangling
- Poner en código lo que sabes que hay que hacer
En mi experiencia, R es absurdamente bueno para el punto 3. Después de todo, R es un lenguaje creado por estadísticos para estadísticos. Para los pasos 1 y 2, R también tiene herramientas, pero la variedad en formato, tamaño y fuente de los datos hace que cada proyecto sea una bestia distinta.
Por todo esto, es crucial que tus habilidades de data wrangling sean las mejores, para que puedas dedicar más tiempo al modelado de los datos. Te dejo acá algunos tips para alcanzar ese objetivo.
1. Aprende inglés
Es el primer consejo porque facilita los demás. Saber inglés implica acceso más rápido a más información, especialmente en StackOverflow. Otra ventaja es que puedes escribir código en inglés, lo que hará que todo el código esté en un solo idioma y sea más legible.
2. Sigue la guía de estilo del tidyverse
Seguir esta guía va a hacer que tu código sea más legible y esto es importante porque pasamos más tiempo leyendo y editando código que escribiendo código nuevo. Por otro lado, seguramente vas a trabajar en equipo algún día y tus compañeros necesitan entender lo que hiciste.
3. Aprende a usar dplyr
y tidyr
Estos paquetes tienen funciones para transformar, resumir y filtrar los datos, hacen que el código sea más legible y además corre más rápido que R base porque usa C++. Utiliza la chuletas de RStudio (Data Import Cheat Sheet y Data Transformation Cheat Sheet) para que además ahorres tiempo en búsquedas.
4. Aprende a usar ggplot2
Hazte un favor y consigue el libro R Graphics Cookbook. El análisis exploratorio y la presentación de resultados son claves en tu proyecto. Por eso necesitas graficar bien y rápido, y lo mejor para eso es ggplot2
. La sintaxis es consistente, legible y los gráficos se ven muy bien. Una vez que lo aprendas, no vas a querer usar más nada. Cuando utilices las funciones de gráficos de R base (o peor aún, matplotlib en python) te vas a sentir como Morty después de experimentar un suelo nivelado por Rick. Para ahorrar tiempo en búsquedas, usa la chuleta de RStudio (Data Visualization Cheat Sheet) y consigue el libro R Graphics Cookbook.
5. Aprende a usar purrr
Aparte de no seguir las recomendaciones de estilo del tidyverse
, lo que más delata a un novato en R es usar bucles for
. Esto bucles son lentos y además reducen la legibilidad del código. La mejor alternativa es usar las funciones de purrr
, que es el paquete que aprovecha que la mayoría de los bucles, sobre todo los relacionados con procesamiento de datos, siguen el patrón dividir-aplicar-combinar, o split-apply-combine. La curva de aprendizaje de purrr
puede ser un poco lenta, pero te prometo los resultados valen la pena. Mira la chuleta de RStudio (Apply Functions Cheat Sheet) para que tengas una idea de lo que se puede hacer y también para consultar y ahorrar en búsquedas.
6. Aprende expresiones regulares y el paquete stringr
Para extraer información relevante de un texto, es útil conocer de expresiones regulares y otras funciones del paquete stringr. Por ejemplo, para extraer la ciudad de un texto como Caracas012019
podrías usar algo como str_extract('Caracas012019', '^[a-zA-Z]+')
. Fíijate que si el texto y los números están separados por guiones o si la ciudad tuviese siempre la misma longitud, podrías aplicar otras soluciones, pero en este caso, una expresión regular es lo que salva el día.
7. Aprende control de versiones con git
No más código en comentarios por si lo necesitas más adelante, ni guardar los archivos con nombres como script-final.R, script-final-2.R, script-final-ahora-si.R, etc. Lo mejor es utilizar un software de control de versiones como git. Así puedes recuperar versiones anteriores de tus archivos, crear versiones experimentales y subir tu código a la nube con github o gitlab para trabajar en equipo o para mostrar tus proyectos a potenciales empleadores.
8. Crea un paquete en R
Crear un paquete es más fácil de lo crees y te va a enseñar muchas cosas, como documentar tus funciones y organizar tu código, pero lo más importante es que aprenderás test-driven development, una metodología de programación en la que te pruebas que tu código hace lo que debería hacer de una manera automatizada, algo muy importante teniendo en cuenta que tus resultados tienen impacto en la toma del alguna decisión. Te dejo acá una guía completa de cómo escribir paquetes de R con herramientas de RStudio.