2013-11-22 90 views
3

目前我運行[R腳本方式如下:R指令行的最佳做法:退出,打印標準輸出,打印標準錯誤,避免警告

R --slave < <script_fullname> argument1 argument2 ... 

我想知道的最佳實踐中的R如何退出的腳本一個警告,會Q()只是做?

if(!file.exists(argument1)){ 
q() 

}

打印到標準輸出

if(!file.exists(argument1)){ 
    print('file does not exist') 
    q() 
} 

,並打印STD犯錯?

此外,我每次運行R腳本時都會看到以下警告。當我看到stdout時,我看到:

ARGUMENT 'argument1' __ignored__ 
ARGUMENT 'argument2' __ignored__ 

有沒有辦法避免這種警告?

+0

你忘了關閉')'你的if語句 – Dason

+0

@Dason謝謝,修正。 – Dnaiel

回答

0

如果您因爲錯誤而要退出您的R腳本,我建議您使用
stop("warning message here")而不是print()q()

print()不推薦使用,因爲「很難捕獲並選擇性地忽略這種輸出。打印輸出不是條件,所以你不能使用任何有用的條件處理工具。」 - 從Debugging, condition handling, and defensive programming

stderr在this SO post中討論(太長以至於無法在此重複所有選項)。

嘗試使用--args避免警告:
R --slave < <script_fullname> --args argument1 argument2 ...

又見Passing Custom Arguments

相關問題