【问题标题】:Running R script through qsub通过 qsub 运行 R 脚本
【发布时间】:2013-10-25 08:49:25
【问题描述】:

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

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

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

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

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

如何解决这个问题?

【问题讨论】:

    标签: r bash pbs qsub rscript


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可能做错了。如果你有一个像

      这样的 shebang 行
      #!/usr/bin/Rscript
      

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

      ./test.r
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-12
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        • 2014-07-31
        • 1970-01-01
        相关资源
        最近更新 更多