gpt4 book ai didi

r - 如何在 R 中使用 tryCatch

转载 作者:行者123 更新时间:2023-12-04 14:12:50 27 4
gpt4 key购买 nike

我想用 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"))

你知道怎么做吗?
我没有添加任何数据,因为我的问题可能很容易解决,但如果需要,我可以上传它们。

谢谢!

最佳答案

使用 trytryCatch不难。要阅读有关错误处理的更多信息,我建议阅读 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))

}

但是,如果您知道只有第一个模型会失败,那当然有效。可能还有其他情况,所以请三思。祝你好运!

关于r - 如何在 R 中使用 tryCatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24800506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com