我希望在函数返回错误而不是代码停止时获得NA。
我目前正在使用
try.test<-try(results<-lm(log(0)~1))
if(class(try.test)=="try-error"){results<-NA}
我也尝试过使用tryCatch。
我想找到一个功能/线路解决方案。
答案 0 :(得分:17)
尝试
result <- tryCatch(lm(log(0)~1), error=function(err) NA)
但这会捕获所有错误,而不仅仅是来自log(0)的错误。
答案 1 :(得分:4)
解决问题的方法不是优雅,但同样简短。
results <- NA
try(results<-lm(log(0)~1), silent = TRUE)
如果您正在寻找一种优雅的方法来处理错误,我建议您研究monad的概念;使用这些结构可以减少脚本中“if(!na(x))....”样板的数量。