【发布时间】:2015-11-24 12:41:53
【问题描述】:
我想从 python 运行一个 R 脚本,并将输出捕获到一个 .Rout 类型的文件中。 R 脚本采用命令行参数。我正在苦苦挣扎……下面是最小的工作示例。
R 脚本:
job_reference <- commandArgs(trailingOnly = TRUE)
arg1 <- job_reference[1]
arg2 <- job_reference[2]
arg3 <- job_reference[3]
arg4 <- job_reference[4]
print("***")
print(paste(arg1, arg2, arg3, arg4))
print("***")
python 脚本:
import subprocess
arg1 = 'a'
arg2 = 'b'
arg3 = 'c'
arg4 = 'd'
subprocess.call(["/usr/bin/Rscript", "--no-save", "--no-restore", "--verbose", "print_letters.R", arg1, arg2, arg3, arg4, ">", "outputFile.Rout", "2>&1"])
python 脚本的最后一行是通过this stackoverflow link。
如果我运行 python 脚本,not 会生成“outputFile.Rout”。然而,python 输出包括:
running
'/usr/lib/R/bin/R --slave --no-restore --no-save --no-restore --file=print_letters.R --args a b c d > outputFile.Rout'
当我在不涉及 python 的情况下从命令行运行它时,输出文件 is 会生成。请注意,我已尝试指定输出文件的完整路径等。
谁能解释一下 i) 这里发生了什么; ii) 如何从 python 运行 R 脚本,其中 R 脚本接受命令行参数 和 生成 Rout 类型文件?
提前致谢。
【问题讨论】: