Python调用R主要通过rpy2库实现,需先安装R≥4.0并配置PATH,再用pip install rpy2安装;支持R表达式执行、函数调用及数据结构互转。

Python 调用 R 主要通过 rpy2 库实现,它是 Python 与 R 之间最成熟、最常用的桥梁,支持 R 对象在 Python 中直接操作、R 函数调用、数据结构互转等。
安装 rpy2
rpy2 依赖本地已安装的 R 环境(需 R ≥ 4.0),安装前确保系统 PATH 中能调用 R 命令(终端输入 R --version 可验证)。然后执行:
-
pip install rpy2(推荐使用 pip,注意 Windows 用户可能需先装 Visual Studio Build Tools 或使用预编译 wheel) - 如遇编译错误,可尝试:
pip install --only-binary=rpy2 rpy2
基础调用:运行 R 表达式
用 rpy2.robjects.r 可直接执行 R 代码字符串,返回 R 对象:
from rpy2.robjects import rr('x → 返回 Python 中的FloatVector,值为2.0- 结果可进一步转为 Python 原生类型:
list(r('c(1,2,3)'))得[1.0, 2.0, 3.0]
数据互通:Pandas 与 R DataFrame 互转
rpy2 提供 rpy2.robjects.pandas2ri 模块简化数据转换:
立即学习“Python免费学习笔记(深入)”;
- 启用自动转换(推荐):
from rpy2.robjects import pandas2ri; pandas2ri.activate() - Pandas DataFrame → R DataFrame:
r_df = pandas2ri.py2rpy(df) - R DataFrame → Pandas DataFrame:
df = pandas2ri.rpy2py(r_df) - 注意:列名含空格或特殊字符时,R 中会自动重命名(如转为点号),建议预先规范列名
调用 R 包函数(如 ggplot2、dplyr)
先用 rpy2.robjects.packages.importr 导入 R 包,再像调用 Python 模块一样使用:
from rpy2.robjects.packages import importr-
base = importr('base');base.c(1, 2, 3)→ R 的c()函数 -
ggplot2 = importr('ggplot2');ggplot2.qplot(1, 2)可绘图(需配合rpy2.robjects.lib.ggplot2或手动处理图形设备) - R 包未安装时,可在 Python 中调用:
base.install_packages('dplyr')
不复杂但容易忽略的是 R 环境路径和版本兼容性。rpy2 4.x 版本要求 R ≥ 4.0,旧版 R 需搭配 rpy2 3.x 使用。调试时可打印 rpy2.robjects.r('R.version.string') 确认实际加载的 R 版本。











