2015-02-11 86 views
2

我在R.編碼命令行參數爲空

我以爲我做的R.相當不錯的進展我創造了一個腳本讀取命令行參數(有1周單的說法,它是數據文件的名稱),從.csv讀取數據,執行迴歸並打印一些數據。

在某個方向上,我修改了一些東西,所有東西都從窗口出來。隨後,我撕毀了我的整個劇本,現在我有了最基本的劇本,並且表現得很奇怪。以下是我現在得到:

#NOTE: To run the script use the following command in terminal R CMD 
#BATCH scriptname arguments #store the current directory 

initial.dir<-getwd() 

#set the output 
sink("PROGOUT.out") 

#Get commandline arguments 
args<-commandArgs(trailingOnly=TRUE) 
print(args) 
"HELLO WORLD" 

我希望這個程序來創建一個文件,PROGOUT.out,包含命令行參數和短語HELLO WORLD。

在命令提示符下,我跑,

$ R CMD BATCH R_ScriptV3.R test1 test2 test3 test4 

該程序創建兩個文件, '測試1' 和 'PROGOUT.out'

這是PROGOUT.out的內容:

字符(0)

[1]的 「Hello World」

proc.time()用戶系統經過0.201 0.026 0.219

這是TEST1的內容:

ř版本3.1.2(2014年10月31日) - 「南瓜頭盔」版權所有(C)2014 R基金會統計計算平臺:x86_64-apple-darwin10.8.0(64位)R是免費軟件,並附帶絕對保證。歡迎您在特定條件下重新分配。輸入'license()'或'license()'以獲取分發詳細信息。自然語言支持,但在英語語言環境中運行R是與許多貢獻者合作的項目。請輸入'contributors()'以獲取更多信息,並輸入關於如何在出版物中引用R或R包的引用()。爲某些演示鍵入'demo()',爲在線幫助鍵入'help()',或者爲HTML瀏覽器界面鍵入'help.start()'以提供幫助。按「q()」以退出R. [以前保存的工作區復原]>

注意:要運行的腳本在終端

- [R CMD BATCH使用下面的命令腳本名參數>> #store當前目錄

initial.dir < -getwd()

設置輸出

水槽(「PROGOUT。出「)

獲取命令行參數

ARGS < -commandArgs(trailingOnly = TRUE)

打印(參數)

的 」Hello World「>

所以... 1)爲什麼程序創建文件'test1'?當我開始編寫腳本時,這並沒有發生,但是它似乎在命令提示符中的第一個參數變成了一個帶有一些標題信息和一個程序副本的文件?2)PROGOUT.out確實包含'HELLO WORLD'語句,但它確實不包含任何其他參數....爲什麼不,我如何將這些參數讀入我的腳本。

我可以SWORN這一切都工作得很好以前。有任何想法嗎?

+0

爲了縮小與'水槽(FNAME)打開的文件',那麼你需要發出命令'sink()'。函數本身總是返回NULL,所以沒有必要將結果賦給任何R符號。 – 2015-02-11 22:14:00

回答

2

您正在尋找Rscript

Rscript R_ScriptV3.R test1 test2 test3 test4 

R CMD BATCHwork differently的PARAMS:

R CMD BATCH '--args test1 test2 test3 test4' R_ScriptV3.R output.Rout 
+0

謝謝eddi。對不起,作爲一個新手! – djs05101985 2015-02-12 15:39:05

+0

np,很高興提供幫助 – eddi 2015-02-12 15:47:38