5
我希望在函數返回錯誤而不是代碼停止時獲得NA。通過生成NA捕捉錯誤
我目前使用
try.test<-try(results<-lm(log(0)~1))
if(class(try.test)=="try-error"){results<-NA}
我也試圖與tryCatch玩。
我想找到一個單一的功能/線路解決方案。
我希望在函數返回錯誤而不是代碼停止時獲得NA。通過生成NA捕捉錯誤
我目前使用
try.test<-try(results<-lm(log(0)~1))
if(class(try.test)=="try-error"){results<-NA}
我也試圖與tryCatch玩。
我想找到一個單一的功能/線路解決方案。
嘗試
result <- tryCatch(lm(log(0)~1), error=function(err) NA)
但這捕獲所有的錯誤,而不僅僅是從數(0)。
這不是一種優雅,但同樣簡短的解決問題的方法。
results <- NA
try(results<-lm(log(0)~1), silent = TRUE)
如果您正在尋找一種優雅的方式來處理錯誤,我建議您查看monad的概念;使用這些結構可以減少腳本中「if(!na(x))....」樣板的數量。