我是 rpy2 和 R 的新手。
我基本上有一个 R 脚本,script.R,其中包含函数,例如 rfunc(folder)。它与我的 python 脚本位于同一目录中。我想从 Python 调用它,然后启动它的功能之一。我不需要此 R 函数的任何输出。我知道它一定很基础,但我找不到 R 脚本调用 python 代码的示例。 我目前在 Python 中所做的事情:
import rpy2.robjects as robjects
def pyFunction(folder):
#do python stuff
r=robjects.r
r[r.source("script.R")]
r["rfunc(folder)"]
#do python stuff
pyFunction(folder)
我在源代码行上遇到错误:
r[r.source("script.R")]
文件“/usr/lib/python2.7/dist-packages/rpy2/robjects/__init__.py”,第 226 行,在 __getitem__ 中
res = _globalenv.get(项目)
类型错误:参数 1 必须是字符串,而不是 ListVector
我很不明白我给它的论点怎么不是一个字符串,我猜同样的问题会在下一行发生,folder 是一个 python 字符串,而不是一个R 东西。
那么,我怎样才能正确调用我的脚本呢?
最佳答案
source
是一个r
函数,它运行一个r
源文件。因此在rpy2
中,我们有两种调用方式:
import rpy2.robjects as robjects
r = robjects.r
r['source']('script.R')
或
import rpy2.robjects as robjects
r = robjects.r
r.source('script.R')
r[r.source("script.R")]
是错误的做法。
同样的想法可能适用于下一行。
关于python - 使用 rpy2 从 python 调用 R 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24544190/