Este script es un ejemplo clásico de tecnología “wrapped” entre Python y R, utilizando la librería rpy2 para invocar funciones, modelos y gráficos nativos de R directamente desde Python. Esto permite aprovechar la potencia estadística y los paquetes de visualización de R en proyectos Python, mientras conservas toda la flexibilidad del ecosistema Python y Pandas.
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
from rpy2.robjects import pandas2ri
pandas2ri.activate()- Se habilita la conversión automática entre pandas DataFrames y R data frames para que los datos sean interoperables entre ambos lenguajes.[5]
base = importr('base')
utils = importr('utils')
stats = importr('stats')
ggplot2 = importr('ggplot2')- Se importan paquetes básicos y avanzados de R (incluyendo
ggplot2para visualización) directamente en el entorno Python.[2][4]
mtcars = utils.data('mtcars')
r_mtcars = ro.r['mtcars']- Se carga el dataset clásico
mtcarsde R y se recupera para trabajar con él desde Python (puedes convertirlo fácilmente a pandas si lo deseas).[2][5]
linear_model = ro.r('lm(mpg ~ wt + hp, data=mtcars)')
summary = ro.r('summary')(linear_model)
print(summary)- Se define un modelo de regresión lineal en R usando la sintaxis nativa y se muestra el resumen del modelo (coeficientes, error estándar, R², etc.) desde Python. Toda la lógica estadística corre realmente en R.[4][2]
ro.r('''
library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point() +
geom_smooth(method="lm", se=FALSE, color="blue") +
labs(title="Scatter plot with regression line",
x="Weight (1000 lbs)",
y="Miles per gallon (mpg)")
''')- Se genera un gráfico de dispersión con línea de regresión usando
ggplot2de R, invocando y gestionando directamente desde Python.[7][2]
- Máxima interoperabilidad: Puedes mezclar análisis y visualizaciones de R y Python en el mismo flujo de trabajo.
- Acceso potente a bibliotecas de R: Usas modelos, gráficos y técnicas altamente optimizados en R sin salir de Python.
- Facilidad para transferir datos y resultados: La interoperabilidad entre pandas y R data.frames es automática gracias a rpy2.
- Documentación oficial de rpy2 — Ejemplos, referencia y detalles de conversión de datos.[5]
- Tutorial de R/Python con rpy2 en Kaggle.[1]
- Ejemplo de integración y visualización con R desde Python.[2]