我在Windows上使用parallel
或snow
个软件包,makeCluster
函数可以使用rscript
参数来指定Rscript
所在的位置对工人执行。如果我希望执行--vanilla
选项的原因怎么办?
编辑:正在运行makeCluster(2, rscript='pathToMyRScript --vanilla')
无法使用我的方框
答案 0 :(得分:2)
我认为您最好的选择是将此作为功能请求提交给包作者,或者深入了解函数定义并定义您自己的调用以尝试使用名为--vanilla
的Rscript生成PSOCK节点。请参阅parallel:::newPSOCKnode
并查看它如何定义对Rscript
的调用。兴趣点是:
rscript <- if (getClusterOption("homogeneous", options)) {
shQuote(getClusterOption("rscript", options))
}
else "Rscript"
cmd <- paste(rscript, "-e", shQuote(arg), env)
如果您可以修改函数来调用Rscript --vanilla
,它可能会正常工作。我很惊讶写rscript=<rscript_path> --vanilla
不起作用。
答案 1 :(得分:1)
从R手册页上的An Introduction to R
开始,B.4节:
If you just want to run a file foo.R of R commands, the recommended way is to use R CMD BATCH foo.R. If you want to run this in the background or as a batch job use OS-specific facilities to do so: for example in most shells on Unix-alike OSes R CMD BATCH foo.R & runs a background job.
因此,在您的情况下,所有命令都必须进入脚本,然后您需要
R --vanilla CMD BATCH your_script.R
从命令行,而不是GUI。
答案 2 :(得分:1)
我不相信这些软件包提供简单直接的方法。我将创建一个包装器并使用“rscript”选项指定该包装器的完整路径。理论上这很容易,但实际上在编写包装器时必须要小心,以避免由于在包含空格的情况下重新解析参数而导致的错误。例如,我怀疑以下BAT脚本会出现问题:
"C:\Program Files\R\R-2.15.2\bin\Rscript" --vanilla %*
我可能会使用子脚本模块的Python脚本,但有很多可供选择的方式,你可能有自己喜欢的。
<强>更新强>
自R版本3.1.2起,rscript_args
选项已添加到makeCluster
功能中。您可以使用此选项指定--vanilla
选项:
makeCluster(2, rscript_args="--vanilla")