如何在Python脚本中导入R脚本calc.R中的add函数?
在Python中调用R脚本里的函数
当然可以实现!想要在Python的test.py里调用R脚本calc.R中的add函数,你可以借助rpy2这个专门用于Python与R交互的库,实现起来和你熟悉的Python模块导入逻辑很接近。下面是两种实用的解决方案:
方案1:将R脚本封装为可导入的模块
这种方式最接近你习惯的from calc import add的使用体验,通过rpy2的STAP工具把R代码封装成Python可识别的模块:
from rpy2.robjects.packages import STAP # 读取calc.R的代码内容 with open("calc.R", "r") as r_script: r_code = r_script.read() # 将R代码封装为名为"calc"的模块 calc = STAP(r_code, "calc") # 直接像调用Python函数一样使用add result = calc.add(3, 7) print(result) # 输出10
方案2:加载R脚本后直接获取函数
如果不需要封装成模块,也可以直接加载R脚本,然后提取其中的函数使用:
from rpy2.robjects import r # 加载当前目录下的calc.R脚本 r.source("calc.R") # 从R环境中获取add函数 add = r["add"] # 调用函数并打印结果 print(add(5, 2)) # 输出7
注意事项
- 首先需要安装
rpy2:在终端执行pip install rpy2即可。 - 确保你的系统已经安装了R环境,且
rpy2能正确识别R的路径(如果遇到路径问题,可以设置环境变量R_HOME指向你的R安装目录)。 - 如果需要处理复杂数据类型(比如Pandas数据框和R数据框的转换),可以导入
rpy2.robjects.pandas2ri并启用转换:pandas2ri.activate()。
内容的提问来源于stack exchange,提问作者Yash
相关产品推荐
相关产品推荐

