2013-10-17 83 views
3

我試圖通過qsub運行一個名爲test.r的腳本R。我R腳本如下:通過qsub運行R腳本

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

如果在Ubuntu終端I型R CMD BATCH test.r,那麼腳本的行爲按計劃完成; test.csv被導出到相同的目錄中。

但是,如果我創建了一個名爲testbash.shbash腳本並通過命令qsub testbash.sh運行它;它將運行無誤,但輸出不會在那裏。

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

如何解決這個問題?

回答

1

你可能做錯了。如果你有一個shebang行像

#!/usr/bin/Rscript 

那麼「簡單」在文件上做chmod 0755 test.r,並運行它:

./test.r 

這應該工作,然後你就可以在你的qsub-該調用所謂的腳本。

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