在Python中使用rpy2导入.R文件时遇到的问题

3 投票
1 回答
2201 浏览
提问于 2025-04-18 18:08

在 rpy 1.x 中,要在 .R 文件中引入代码,只需要这样做:

import rpy 
rpy.r.source("filename.R")

而在 rpy2 中,要从 Python 中引入一个 .R 文件,需要做些什么呢?

我尝试了几种方法,比如这样:

import rpy2.robjects as ro
ro.source("filename.R")

结果出现了这样的错误(抱歉如果格式不太对):

File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 166, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 99, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
RRuntimeError: Error in file(filename, "r", encoding = encoding) : 
cannot open the connection

提前感谢大家...

1 个回答

3

你应该可以用 rpy2.robjects.r()(或者 .R(),这两个没什么区别)来运行任意的 R 代码。

import rpy2.robjects as ro

ro.r("""source('filename.R')""")

我建议你先在 RStudio(或者你喜欢的其他工具)里测试一下 filename.R 文件,确保它是一个有效的文件,并且可以顺利加载。

撰写回答