Python调用R主要通过rpy2库实现,需先安装R≥4.0并配置PATH,再用pip install rpy2安装;支持R表达式执行、函数调用及数据结构互转。
Python 调用 R 主要通过 rpy2 库实现,它是 Python 与 R 之间最成熟、最常用的桥梁,支持 R 对象在 Python 中直接操作、R 函数调用、数据结构互转等。
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
用 rpy2.robjects.r
可直接执行 R 代码字符串,返回 R 对象:
from rpy2.robjects import rr('x → 返回 Python 中的 FloatVector,值为 2.0list(r('c(1,2,3)')) 得 [1.0, 2.0, 3.0]
rpy2 提供 rpy2.robjects.pandas2ri 模块简化数据转换:
from rpy2.robjects import pandas2ri; pandas2ri.activate()
r_df = pandas2ri.py2rpy(df)
df = pandas2ri.rpy2py(r_df)
先用 rpy2.robjects.packages.importr 导入 R 包,再像调用 Python 模块一样使用:
from rpy2.robjects.packages import importrbase = importr('base');base.c(1, 2, 3) → R 的 c() 函数ggplot2 = importr('ggplot2');ggplot2.qplot(1, 2) 可绘图(需配合 rpy2.robjects.lib.ggplot2 或手动处理图形设备)base.install_packages('dplyr')
不复杂但容易忽略的是 R 环境路径和版本兼容性。rpy2 4.x 版本要求 R ≥ 4.0,旧版 R 需搭配 rpy2 3.x 使用。调试时可打印 rpy2.robjects.r('R.version.string') 确认实际加载的 R 版本。