R: Introducción a la ciencia de datos (2019)
El papel de R en la ciencia de datos se debate entre quienes lo ven como un lenguaje envejecido y peculiar y quienes lo consideran insuperable para el análisis exploratorio de datos, el modelado estadístico y la visualización de alta calidad. Los comentaristas contrastan el ecosistema de R centrado en tidyverse, las herramientas de informes reproducibles (R Markdown/Quarto) y los paquetes sólidos por dominio (p. ej., bioinformática, econometría, estadística bayesiana) con la mejor adaptación de Python a sistemas de producción a gran escala, apps web y marcos modernos de ML. La gestión de paquetes, la integración en pipelines y el mantenimiento a largo plazo surgen como puntos de dolor clave para ambos lenguajes, y muchos equipos eligen en función de la infraestructura existente, la realidad de la contratación y si priorizan el análisis interactivo rápido o la ingeniería de software robusta.
Casos de uso en los que R destaca
- Preferido para análisis exploratorio de datos (EDA), gráficos rápidos e iteración “tan rápida como pensar” sobre datos tabulares.
- Fuerte en estadística tradicional y bayesiana, GLMs/GAMs, modelos jerárquicos e integración con Stan.
- Ampliamente usado en bioinformática, genética, PK/PD en farma, econometría, GIS y algunos flujos de trabajo de finanzas cuantitativas y trading.
- A menudo es la herramienta principal en equipos que producen análisis e informes estáticos en lugar de servicios de larga ejecución.
R vs Python (y Julia)
- Muchos usuarios pasaron a Python por la integración con pipelines, apps web, contratación y desarrollo de propósito general.
- Otros informan mayor productividad en R para manipulación de datos y modelado, y luego migran a Python solo para producción o modelos basados en autograd.
- Con frecuencia se describe a pandas de Python como torpe en comparación con dplyr/tidyverse; algunos usuarios de Python prefieren polars o clones al estilo ggplot.
- Algunos ven a Julia como un posible sucesor de R, pero actualmente es demasiado de nicho y carece de la profundidad de paquetes de R.
Tidyverse, ggplot2 y EDA
- Tidyverse se cita repetidamente como la ventaja clave de R: manipulación de datos concisa, legible y estilo pipeline, con interfaces de modelado consistentes.
- ggplot2 (y sus clones conceptuales) se considera insuperable en calidad y expresividad de visualización.
- Se considera que R es especialmente eficaz como entorno REPL/interactivo, particularmente con soporte de IDE.
Producción, pipelines y web
- Experiencias mixtas: algunas organizaciones ejecutan pipelines y aplicaciones grandes y críticas para el negocio completamente en R; otras encontraron dolorosa la integración y estandarizaron en Python.
- Las quejas incluyen opciones débiles de frameworks web (sin equivalente a Django), semántica complicada de errores/excepciones y “hacer algo” en lugar de fallar ruidosamente.
- Se elogia Shiny para paneles y mini-apps, pero se lo ve insuficiente para apps web a gran escala; existen frameworks web alternativos para R, pero son de nicho.
Gestión de paquetes y entornos
- Fuerte desacuerdo: algunos encuentran que CRAN y las herramientas son extremadamente fiables; otros informan roturas frecuentes, mal fijado de versiones y problemas de compilación binaria.
- Herramientas como
renv, el snapshotting de CRAN y los gestores de paquetes mejoran la reproducibilidad, pero no resuelven por completo los casos límite. - Los grandes ecosistemas tanto en R como en Python incluyen muchos paquetes obsoletos o abandonados.
Diseño del lenguaje y aprendizaje
- R se describe como potente pero idiosincrático: semántica centrada en vectores, múltiples variantes de apply, manejo de factor, enteros de 32 bits, peculiaridades de NA/NULL.
- Algunos lo ven esencialmente como un DSL para estadística; otros sostienen que es un lenguaje generalista capaz pero con un diseño extraño.
- Las opiniones sobre la ergonomía van desde “lo más intuitivo para estadística” hasta “una reliquia desconcertante con una curva de aprendizaje casi vertical”.