我希望能够使用 rpy2 模块从 python 调用 R 文件。我希望能够将参数传递给这些脚本,这些脚本可以由 R 的 commandArgs 函数解释。
因此,如果我的 R 脚本 ( trivial_script.r) 如下所示:
print(commandArgs(TRUE))
Run Code Online (Sandbox Code Playgroud)
我的 Python 2.7 脚本如下所示:
>>> import rpy2.robjects as robjects
>>> script = robjects.r.source('trivial_script.r')
Run Code Online (Sandbox Code Playgroud)
如何使用参数“arg1”、“arg2”、“arg3”从 rpy2.robjects 调用它?
我将这两种方法(RPy 与命令行脚本)视为两个独立的部分。如果您使用 RPy,则无需传递命令行参数。您只需创建一个包含要在 R 中运行的功能的函数,然后使用arg1, arg2,来从 Python 调用该函数arg3。
如果您想在 Python 中使用 R 命令行脚本,请查看Python 中的subprocess库。您可以使用以下命令从命令行调用 R 脚本:
import subprocess
subprocess.call(['Rscript', 'script.R', arg1, arg2, arg3])
Run Code Online (Sandbox Code Playgroud)
其中arg1、arg2、arg3是包含要传递给 R 脚本的信息的 Python 对象(例如字符串)。