使用rpy2从python调用R脚本

时间:2014-07-03 02:53:08

标签: python r call rpy2

我对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。

那么,我怎样才能正确调用我的脚本?

1 个答案:

答案 0 :(得分:24)

sourcer函数,它运行r源文件。因此,在rpy2中,我们有两种方法可以调用它:

r['source']("script.R")

r.source("script.R")

r[r.source("script.R")]是一种错误的做法。

同样的想法可能适用于下一行。