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”.