2014-10-05 61 views
1

我想檢查在iflese命令中R命令是否存在錯誤。與以下類似。我想知道如何完成這一個。其實我只想在以前的R代碼中沒有錯誤的時候運行下面的代碼。在ifelse命令中測試R命令是否存在錯誤

ifelse(
     test= Check R Command has error or not 
    , yes = FALSE 
    , no = TRUE 
    ) 


ifelse(
     test= log("a") # Has error 
    , yes = 3 
    , no = 1 
    ) 
+0

或'tryCatch({log('a'); 1},error = function(e)3)' – jbaums 2014-10-05 09:11:04

+0

這應該是一個很好的閱讀:http://stackoverflow.com/questions/12193779/how-to -write-trycatch-in-r – nico 2014-10-05 09:14:26

+0

感謝@jbaums對你的評論。您想將您的評論轉換爲答案嗎?謝謝 – MYaseen208 2014-10-05 11:17:18

回答

2

可以使用tryCatch爲這樣:上述

tryCatch({ 
    log(10) 
    1 
}, error=function(e) 3) 

# [1] 1 


tryCatch({ 
    log('a') 
    1 
}, error=function(e) 3) 

# [1] 3 

在第二個例子中,第一表達(其可以是多行,如上述)時會引發錯誤的,所以表達傳遞給error參數被執行。

+0

(+1):謝謝@jbaums的幫助。我在這裏有一個[後續問題](http://stackoverflow.com/q/26202078/707145),如果你也能幫助我,我將不勝感激。無論如何,再次感謝您的幫助。 – MYaseen208 2014-10-05 11:33:55