R: Introduction to Data Science (2019)

R’s role in data science is debated between those who see it as an aging, quirky language and those who consider it unmatched for exploratory data analysis, statistical modeling, and high-quality visualization. Commenters contrast R’s tidyverse-centered ecosystem, reproducible reporting tools (R Markdown/Quarto), and strong domain packages (e.g., bioinformatics, econometrics, Bayesian stats) with Python’s better fit for large-scale production systems, web apps, and modern ML frameworks. Package management, integration into pipelines, and long-term maintenance emerge as key pain points for both languages, with many teams choosing based on existing infrastructure, hiring realities, and whether they prioritize rapid interactive analysis or robust software engineering.

Use Cases Where R Excels

  • Favored for exploratory data analysis (EDA), quick plotting, and “as-fast-as-thinking” iteration on tabular data.
  • Strong for traditional and Bayesian statistics, GLMs/GAMs, hierarchical models, and Stan integration.
  • Widely used in bioinformatics, genetics, PK/PD in pharma, econometrics, GIS, and some quant finance and trading workflows.
  • Often the main tool in teams producing static analyses and reports rather than long-running services.

R vs Python (and Julia)

  • Many users transitioned to Python for pipeline integration, web apps, hiring, and general-purpose development.
  • Others report better productivity in R for data wrangling and modeling, then port to Python only for production or autograd-based models.
  • Python’s pandas is frequently described as clunky compared to dplyr/tidyverse; some Python users prefer polars or ggplot-style clones.
  • Julia is seen by some as a potential R successor but currently too niche and lacking R’s package depth.

Tidyverse, ggplot2, and EDA

  • Tidyverse is repeatedly cited as R’s key advantage: concise, readable, pipeline-style data manipulation and consistent model interfaces.
  • ggplot2 (and its conceptual clones) is viewed as unmatched for visualization quality and expressiveness.
  • R is considered especially effective as a REPL/interactive environment, particularly with IDE support.

Production, Pipelines, and Web

  • Mixed experiences: some organizations run large, business-critical pipelines and applications fully in R; others found integration painful and standardized on Python.
  • Complaints include weak web framework options (no Django-equivalent), tricky error/exception semantics, and “doing something” instead of failing loudly.
  • Shiny is praised for dashboards and mini-apps but seen as insufficient for full-scale web apps; alternative R web frameworks exist but are niche.

Package and Environment Management

  • Strong disagreement: some find CRAN and tooling extremely reliable; others report frequent breakages, poor version pinning, and binary build issues.
  • Tools like renv, snapshotting CRAN, and package managers improve reproducibility but don’t fully solve edge cases.
  • Large ecosystems in both R and Python include many stale or abandoned packages.

Language Design and Learning

  • R is described as powerful but idiosyncratic: vector-first semantics, multiple apply variants, factor handling, 32‑bit integers, NA/NULL quirks.
  • Some see it as effectively a DSL for statistics; others argue it’s a capable but oddly designed general-purpose language.
  • Opinions on ergonomics range from “most intuitive for stats” to “a baffling relic with a near-vertical learning curve.”