我对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)
我在source行处遇到了一个错误:
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
我不太理解为什么我输入的参数不是字符串,我猜下一行也会出现同样的问题,因为folder是一个Python字符串,而不是一个R的东西。
那么,我应该如何正确地调用我的脚本呢?
r.rfunc(folder)
的工作方式与您的解决方案相同。看来我在寻找过于复杂的东西,而解决方案却非常简单。谢谢。 - Efferalganr["rfunc(folder)"]
会将folder
作为字符串'folder'
传递,这可能不是你想要的。我今天已经用完了点赞次数,明天再点吧。干杯! - CT Zhu