我对rpy2以及R。
都很新我基本上有一个R脚本script.R,它包含rfunc(文件夹)等功能。它与我的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")]
File "/usr/lib/python2.7/dist-packages/rpy2/robjects/__init__.py", line 226, in __getitem__
res = _globalenv.get(item)
TypeError: argument 1 must be string, not ListVector
我完全不明白我给它的参数是不是一个字符串,我想下一行会发生同样的问题,文件夹是一个python字符串,而不是R thingie。
那么,我怎样才能正确调用我的脚本?
答案 0 :(得分:24)
source
是r
函数,它运行r
源文件。因此,在rpy2
中,我们有两种方法可以调用它:
r['source']("script.R")
或
r.source("script.R")
r[r.source("script.R")]
是一种错误的做法。
同样的想法可能适用于下一行。