通过 qsub 运行 R 脚本



我正在尝试运行一个名为 test.rqsubR脚本。我的R脚本如下:

#!/usr/bin/Rscript
x <- 1
write.csv(x,"test.csv")

如果在 Ubuntu 终端中键入 R CMD BATCH test.r ,则脚本按计划运行; test.csv导出到同一目录中。

但是,如果我创建一个名为 testbash.shbash脚本并通过命令 qsub testbash.sh 运行它;它将运行而不会出错,但输出不会在那里。

#!/usr/bin/bash
R CMD BATCH test.r

如何解决这个问题?

尝试将 R 脚本修改为:

#!/usr/bin/Rscript
x <- 1
print(getwd())
write.csv(x,"test.csv")

当您通过 qsub 运行脚本时,该脚本通常在另一台服务器中运行,默认情况下在您的主目录中运行。您需要更改为脚本中的原始目录,为此PBS_O_WORKDIR有一个变量:

#!/usr/bin/bash
#PBS -N qsub_R_test
echo We are in the $PWD directory
cd $PBS_O_WORKDIR
echo We are now in $PBS_O_WORKDIR, running an R script.
R --vanilla < test.r > test.log 2> test.log

我通常不能使用R CMD BATCH,但重定向到R -vanilla工作。您还可以在脚本中指定 PBS 的选项,以 #PBS 开头,如本例中的作业名称 ( qsub_R_test )。

您可以在此处获取更详细的 qsub 参数列表:http://www.csc.fi/english/pages/louhi_guide/batch_jobs/commands/qsub

这里有一个 PBS 脚本的示例:http://bose.utmb.edu/Compu_Center/Cluster_users/PBS%20HOWTO/PBS_HOW_TO.html

你可能做错了。如果你有一条像这样的舍邦线

#!/usr/bin/Rscript

然后"简单地"对文件执行chmod 0755 test.r,并运行它:

./test.r

这应该有效,然后您可以在 qsub 调用的脚本中进行该调用。

相关内容

  • 没有找到相关文章

最新更新