解析后评估代码

时间:2014-06-05 16:04:19

标签: python-2.7 rpy2

我正在尝试创建一个用Python编写的工具,它执行R脚本(来自文件),在执行变量之前将值注入变量,然后读取输出变量。

rinterface文档提到了解析函数,但没有关于如何执行结果的指示。 C接口包含一个eval函数,但它在Python中似乎不可用。

这是我想要做的一个非常基本的例子:

import rpy2.rinterface as ri
ri.initr()
with open('script.r', 'r') as myFile:
  script = myFile.read()
expr = ri.parse(script)

# prepare
ri.globalenv['input'] = ri.IntSexpVector((1, 2, 3, 4))

# execute
#??????????????????
# what to do here ?
#??????????????????

# fetch results
# The script is supposed to store results into a global var named 'output'
result = ri.globalenv['output']

由于

1 个答案:

答案 0 :(得分:1)

有几种方法。 一个是:

from rpy2.robjects.packages import importr
base = importr('base')
base.eval(expr)