【问题标题】:Calling an R script with command line arguments from Python rpy2从 Python rpy2 调用带有命令行参数的 R 脚本
【发布时间】:2015-05-18 04:13:48
【问题描述】:

我希望能够使用 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')

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

【问题讨论】:

标签: python r rpy2


【解决方案1】:

我将这两种方法(RPy 与命令行脚本)视为两个独立的部分。如果您使用 RPy,则无需传递命令行参数。您只需创建一个包含您要在 R 中运行的功能的函数,然后使用 arg1arg2arg3 从 Python 调用该函数。

如果您想在 Python 中使用 R 命令行脚本,请查看 Python 中的 subprocess library。在那里,您可以使用以下命令从命令行调用 R 脚本:

import subprocess
subprocess.call(['Rscript', 'script.R', arg1, arg2, arg3])

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

【讨论】:

  • 我倾向于认为我确实需要传递命令行参数,因为我正在尝试使用也以独立容量使用的脚本。
  • 请@Paul 你能提供第一种方法的例子吗?编辑:我不明白它是如何使用 R 语言的,在我看来,您建议创建一个与 R 函数执行相同操作 的 python 函数
猜你喜欢
  • 1970-01-01
  • 2014-08-24
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 2018-10-24
  • 2023-02-06
  • 1970-01-01
相关资源
最近更新 更多