用Python的rpy2库调用带有命令行参数的R脚本

3

我希望能够使用rpy2模块从Python中调用R文件。我希望能够传递参数到这些脚本,这些参数可以被R的commandArgs函数解释。

如果我的R脚本(trivial_script.r)如下所示:

print(commandArgs(TRUE))

我的Python 2.7脚本如下:

>>> import rpy2.robjects as robjects
>>> script = robjects.r.source('trivial_script.r')

如何使用参数“arg1”,“arg2”,“arg3”从rpy2.robjects调用它?

Rpy2让你可以像使用模块一样使用R脚本:http://stackoverflow.com/questions/28373343/passing-vectors-and-params-from-python-to-r-functions/28375231#28375231 - lgautier
1个回答

5
我认为这两种方法(RPy与命令行脚本)是两个独立的部分。如果你使用RPy,就不需要传递命令行参数。你只需创建一个包含你想在R中运行的功能的函数,并使用arg1arg2arg3从Python中调用该函数。
如果你想在Python中使用R命令行脚本,请查看Python中的subprocess。在那里,你可以使用以下命令从命令行调用R脚本:
import subprocess
subprocess.call(['Rscript', 'script.R', arg1, arg2, arg3])

其中arg1arg2arg3是包含您要传递给R脚本的信息的Python对象(例如字符串)。


1
我倾向于认为我需要传递命令行参数,因为我正在尝试使用脚本,这些脚本也可以独立使用。 - ChrisGuest
请@Paul提供第一种方法的示例吗?编辑:我不明白那如何使用R语言,看起来你建议创建一个Python函数,它可以_做与R函数相同的事情_。 - AniMir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接