我正在对置换数据运行GLMM,但其中一些数据会出现收敛错误的错误消息。 由于这是我的空模型,我只需要重新采样这个特定的置换数据。 因此,我尝试处理R的tryCatch函数,但我失败了。 我有Perm,它是我的数据框的置换数据集,pglmm是置换数据的glmm模型。 因此,我有以下结构:
pglmm<-NULL
for (i in seq_along(Perm)){
pglmm[[i]]<-summary(lme("My GLMM model"))
}
为了处理错误,我尝试使用以下结构:
pglmm<-NULL
for (i in seq_along(Perm)){
pglmm[[i]]<- tryCatch(summary(lme()),
error=function(err){
pglmm[[i]]<- summary(lme("My GLMM model on resample data"))
return(pglmm[[i]])
}
}
目前代码能够运行,但是即使重新采样一次出现错误的数据,我可能仍然会遇到收敛问题,因此我需要添加一个while循环来重复采样,直到不再出现收敛错误。但是我不知道在哪里添加这个while循环(是在error=function(err)内还是在for循环开始时?)。
非常感谢您的帮助。