R es un lenguaje que lleva más de treinta años entre nosotros y sigue siendo la primera elección de estadísticos, investigadores y científicos de datos de todo el mundo. No compite con Python por ser más moderno ni por tener mejores librerías de deep learning; compite por ser el mejor lenguaje para hacer estadística real, con rigor matemático y una comunidad académica que no tiene parangón en ningún otro entorno.
La versión 4.5, publicada en abril de 2025, es la última entrega de una evolución que arrancó en 1993 cuando Ross Ihaka y Robert Gentleman empezaron a trabajar en la Universidad de Auckland. Su objetivo era reimplementar el lenguaje S de Bell Labs de forma abierta y gratuita. R 1.0 llegó en el año 2000, y desde entonces cada versión mayor ha añadido algo sustancial.
De R 4.0 a R 4.5: los cambios que importan
R 4.0 (2020) fue una versión bisagra: eliminó el comportamiento por defecto de stringsAsFactors=TRUE, que durante décadas había desconcertado a quienes aprendían el lenguaje. A partir de ese momento los character vectors dejaron de convertirse en factores sin avisar. R 4.1 (2021) introdujo el pipe nativo |>, que permite encadenar operaciones sin cargar el paquete magrittr:
# Pipe nativo (R 4.1+) c(1, 4, 9, 16, 25) |> sqrt() |> sum() # [1] 15 # Diferencia con el pipe de magrittr # El nativo no acepta . como placeholder # pero es más rápido y no tiene dependencias
R 4.2 (2022) trajo soporte nativo de UTF-8 en Windows, algo que parecía imposible durante años, y un nuevo sistema de excepciones más predecible. R 4.3 (2023) refinó el comportamiento del pipe y ajustó varias inconsistencias menores. R 4.4 (2024) siguió limpiando deuda técnica acumulada.
R 4.5 mejora el recolector de basura (GC), que en programas de larga duración consumía más memoria de la necesaria, y reimplementa el sistema de closures para que sean más eficientes. El resultado es un R más rápido en tareas que antes penalizaban el rendimiento, como bucles con muchas funciones anidadas o scripts largos de análisis iterativo.
Por qué R y no Python para estadística
La pregunta que se repite en foros y entrevistas de trabajo tiene una respuesta que depende de lo que vayas a hacer. Si tu trabajo principal es construir modelos de machine learning en producción, Python tiene más infraestructura. Pero si haces estadística, R tiene ventajas concretas que no son de marketing:
- Toda la estadística clásica está implementada en base R sin necesidad de instalar nada:
lm(),glm(),t.test(),chisq.test(),anova(). - CRAN supera los 22.000 paquetes en 2026, con revisión manual de calidad. Muchos métodos estadísticos se publican primero como paquete R antes de llegar a cualquier otro lenguaje.
- La integración con LaTeX y la generación de documentos reproducibles mediante Quarto o R Markdown no tiene equivalente directo en el ecosistema Python.
- Bioconductor, con más de 2.200 paquetes para bioinformática, es un repositorio especializado sin parangón fuera de R.
La estructura básica del lenguaje
Todo en R es un vector. No existe el escalar como tipo separado; un número solo es un vector de longitud 1. Esto puede parecer raro al principio, pero simplifica enormemente las operaciones vectorizadas:
# Vectores básicos x <- c(2, 4, 6, 8, 10) y <- 1:5 # secuencia entera z <- seq(0, 1, by = 0.25) # secuencia decimal # Indexación base 1 x[1] # primer elemento: 2 x[c(1, 3)] # elementos 1 y 3: 2, 6 x[-1] # todos menos el primero: 4, 6, 8, 10 # Operaciones vectorizadas x * 2 # multiplica cada elemento por 2 x + y # suma elemento a elemento
Los tipos principales son: vector atómico, lista, matriz, array, data frame y factor. El data frame es la estructura central del análisis de datos: una tabla donde cada columna puede ser de un tipo diferente, y que se puede manipular con una sintaxis que los usuarios de SQL o Excel reconocerán rápidamente.
El ecosistema CRAN y cómo instalar paquetes
Instalar un paquete de CRAN es una sola línea:
install.packages("tidyverse") # instala del CRAN oficial
library(tidyverse) # carga en la sesión actual
# Para paquetes de Bioconductor
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("DESeq2")
CRAN tiene mirrors en todo el mundo y cada paquete pasa por una revisión antes de publicarse. No es perfecta, pero filtra errores básicos que en otros ecosistemas llegan directamente al usuario. Los paquetes tienen versiones estables y se pueden instalar versiones concretas con remotes::install_version() o desde GitHub con remotes::install_github().
RStudio / Posit y los entornos de trabajo
RStudio fue durante años el IDE de referencia para R. En 2022, la empresa detrás cambió su nombre a Posit para reflejar que también dan soporte a Python. El IDE sigue llamándose RStudio en muchos contextos pero la marca oficial es Posit IDE. Posit Cloud permite trabajar desde el navegador sin instalar nada, lo que viene bien para formación y colaboración.
VS Code con la extensión R también funciona bien, especialmente si ya trabajas en ese editor para otros lenguajes. La extensión de Posit para VS Code ofrece completado de código, ayuda integrada y un terminal R conectado al editor.
Si te interesa comparar R con otros lenguajes de análisis de datos, tenemos artículos sobre Julia para ciencia de datos y sobre DuckDB para análisis SQL embebido, dos alternativas que conviven bien con R en flujos de trabajo modernos.
Reproducibilidad y ciencia abierta
Una de las razones por las que R se ha mantenido fuerte en academia es su ecosistema de reproducibilidad. Con Quarto (el sucesor de R Markdown) puedes generar informes en PDF, HTML o Word donde el código y los resultados coexisten en el mismo documento. Cuando los datos cambian, el informe se regenera automáticamente con los nuevos valores. Esto, que parece una comodidad, es lo que diferencia un análisis reproducible de un análisis que «funcionaba en mi máquina».
R no va a desaparecer pronto. La combinación de base sólida, ecosistema maduro y comunidad académica activa lo mantiene como herramienta de referencia para cualquiera que trabaje en serio con datos y estadística.
Imagen: Pexels / Marc Mueller
