Resumen
En este episodio (E82), Matías y Rodo (Rodrigo) comparten su experiencia de varios años usando R en el trabajo, en lugar de la mirada clásica de "cómo usar R". Parten criticando un artículo de pros y contras de R vs Python que contiene mitos (R no sirve para Big Data, consume demasiada memoria, la consola de R). Sostienen que R solo es usable con una buena IDE como RStudio y que conviene configurarla bien (no guardar el workspace) y aprovechar sus shortcuts y snippets. Presentan lo que les "cambió la vida": RStudio, dplyr/tidyverse con pipes, data.table para grandes volúmenes y Quarto/R Markdown para notebooks. Matías cuenta lo que no le convenció: purrr, Shiny (difícil de depurar y escalar) y ggplot2 (curva de aprendizaje para personalizaciones específicas). Cierran con la dificultad de productivizar pipelines en R (source, ambientes temporales) y su conclusión: para analizar y procesar datos prefieren R; para integrar sistemas, Python.
Capítulos
- 00:00IntroPresentan el tema: R en el ambiente laboral y las cosas de R y RStudio que se extrañan en otros entornos. Matías aporta su experiencia de unos 5 años; Rodo es el más experto y proyecta la pantalla por problemas de internet.
- 02:20Por qué R vs Python no tiene sentidoRevisan un artículo de pros y contras de R. Critican que los "pros" (ggplot2, dplyr) no son diferenciadores claros, y desmienten mitos: que R consume más memoria, que no sirve para Big Data (hay Spark y Arrow) y que es lento. Destacan de ggplot2 la construcción de gráficos por capas.
- 12:15Qué es R y por qué no usar la terminal de RMuestran que la consola de R, aunque ahora tiene autocompletado, no es la forma de usar el lenguaje. La experiencia real pasa por una buena IDE como RStudio.
- 14:01Programación funcionalExplican que R es funcional: todo es una función (incluso la suma `+`) y los problemas se modelan como inputs y outputs y composición de funciones.
- 16:57Por qué RStudio es tan buena IDEPresentan los cuatro paneles de RStudio (script, consola/terminal, environment, gráficos/paquetes/ayuda). Dicen que muchos desconocen esta IDE, que se renombró a Posit en la empresa, pero la IDE sigue llamándose RStudio.
- 20:35Configuración inicialEn Global Options recomiendan desactivar restaurar `.RData` al inicio, nunca guardar el workspace al salir y no guardar el historial, porque fomentan malas prácticas y pueden hacer que RStudio tarde media hora en abrir por cargar gigas de objetos. También mencionan cambiar el tema de colores.
- 23:13Keyboard shortcutsMuestran el atajo para ver los atajos, Ctrl+1/Ctrl+2 (editor/consola), Ctrl+Shift+A (reformatear código), Ctrl+Shift+C (comentar), Ctrl+Shift+R (crear secciones), Ctrl+Alt+B (ejecutar desde el inicio hasta la línea actual), Ctrl+Shift+F10 (reiniciar sesión) y Ctrl+Enter para imprimir una variable seleccionada.
- 29:50Snippets (y operadores de asignación)Explican los snippets de RStudio (por ejemplo `fun` para definir una función, con salto entre campos con Tab) y cómo crear propios, como uno para ver las primeras cinco filas de un dataframe (`head`). Matías prefiere `=` a la flecha de asignación `<-`.
- 37:00PipesComparan el código en R base (con `$`) con dplyr usando `select` y `mutate` encadenados con pipes para crear un ratio entre sepal length y sepal width del dataset Iris. Aclaran que el pipe nativo ya existe en R base y que dplyr hace el código más legible; muestran también `group_by` y `summarise` para calcular medias por especie.
- 43:14TidyverseRepasan los paquetes del tidyverse. Los esenciales para Matías: dplyr (el más importante) y stringr (cambio de vida para strings); ggplot2 y tidyr los usó, mientras que forcats no lo necesitó. Rodo menciona dbplyr, que traduce la sintaxis de dplyr a consultas SQL de buena calidad.
- 46:10MemesMuestran memes: el del bug en el código con 4 años de experiencia, uno sobre purrr (`map` y la sal) y otro sobre R que corrige tipos de datos con un warning frente a otros lenguajes estrictos con la sintaxis.
- 48:17datatabledata.table es la solución cuando dplyr se vuelve lento con millones de filas (por ejemplo 80 millones de datos); `fread` y `fwrite` reducen tiempos de minutos a segundos. Su sintaxis (filas, columnas `j`, `by`) hay que estudiarla; la usan solo cuando necesitan velocidad, aunque leer y escribir datos con data.table lo hacen siempre por defecto.
- 53:00Quarto y RmarkdownQuarto (sucesor de R Markdown) sirve para escribir notebooks mezclando código, texto y resultados, con opciones como `echo: false` para ocultar código. Permite mezclar lenguajes (R, Python, etc.) en un mismo documento. Matías resume cuatro claves: RStudio, dplyr, data.table y Quarto.
- 57:27PurrrMatías explica `map` frente a `lapply`/`sapply` y `for`; tras leer una respuesta en Stack Overflow concluye que, si solo usa `map`, no hay ganancia grande, aunque rescata los atajos de funciones anónimas. Rodo cree que sí es útil para iteraciones más elaboradas por estructura y escalabilidad del código.
- 01:03:26ShinyMuestran el ejemplo básico de Shiny (slider que cambia los bins de un histograma, con partes `ui` y `server` y programación reactiva). Matías lo abandonó porque depurar era difícil y no escalaba a visualizaciones complejas, y prefirió herramientas como Power BI, Tableau o Qlik. Rodo lo usa para tutoriales y talleres interactivos (por ejemplo el teorema del límite central). Comentan la publicación en servidor propio y las limitaciones de pago.
- 01:15:00ggplot2Matías cuenta que lo usaba para análisis propio pero no para presentar, porque personalizaciones muy específicas exigían buscar mucho en Stack Overflow y terminaba retocando en PowerPoint o Excel. Mantiene la hoja de referencia (cheat sheet) como ayuda de memoria; recomienda ggplot2 frente a los plots de R base.
- 01:20:44Pipelines robustos para producciónMatías extraña una forma directa de productivizar en R más allá de `source`. Rodo muestra una función propia (`crear_env`) que ejecuta un script en un ambiente nuevo, le pasa parámetros con `assign` y lo elimina al terminar para liberar memoria; aun así aconseja ejecutar pipelines desde la terminal/shell.
- 01:25:25CierreConclusiones: para analizar datos prefieren R (dplyr, sintaxis más legible que pandas) y Python para integración de sistemas; el modelado es similar en ambos. Rodo destaca el operador `!!` (Bang Bang) y funciones como `across`/`mutate_if` para parametrizar procesamientos. Invitan a estudiar dplyr, Quarto y RStudio, y comparten Discord y canal de YouTube.