3

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

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

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

但是,如果我创建一个名为并通过命令运行它的bash脚本;它会运行没有错误,但输出不会存在。testbash.shqsub testbash.sh

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

如何解决这个问题?

4

2 回答 2

2

尝试将您的 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

于 2014-03-07T10:25:52.913 回答
1

你可能做错了。如果你有一个像这样的shebang线

#!/usr/bin/Rscript

然后“简单地”chmod 0755 test.r对文件执行操作,然后运行它:

./test.r

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

于 2013-10-17T03:01:20.620 回答