[英]How to use tryCatch in R
我想使用try()
或tryCatch()
或类似的函数来检测我的模型中是否存在名为“fit1”的错误。 如果模型没问题,我想使用“fit1”,否则我想使用“fit2”
fit1<-glmer(stat ~ dataint + DBH + DBH2 + (1|site_plot), family=binomial(link="logit"))
fit2<-glm (stat ~ dataint + DBH + DBH2, family=binomial(link="logit"))
你知道怎么做吗? 我没有添加任何数据,因为我的问题可能很容易解决,但如果需要,我可以上传它们。
谢谢!
使用try
或tryCatch
并不困难。 要阅读有关错误处理的更多信息,我建议阅读Hadley Wickham即将出版的新书“ Advanced R Programming:Exceptions and Debugging”一章。 它真棒!
对于您的具体示例,您可以使用以下两个函数之一:使用try
允许您继续执行函数调用,即使发生错误(您可以在以后注意到),而使用tryCatch
您可以提前指定错误处理:
select<-function(data, formula1, formula2){
fit1 <- try(lm(formula1, data))
fit2 <- lm(formula2, data)
if(is(fit1, "try-error")) fit2 else fit1
}
select1<-function(data, formula1, formula2){
tryCatch(lm(formula1, data), error = function(e) lm(formula2, data))
}
但是,如果您知道只有第一个模型可能会失败,那当然有效。 可能还有其他场景,所以请考虑一下。 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.