我需要在不干扰生成它们的混合模型的操作的情况下捕获警告(在 R 中)。到目前为止,我已经研究了两种变体。在一种情况下,当发生导致模型翻倒的错误时,我很高兴能够在模型运行成功时记录这些实例中的拟合对象,并散布故障记录:
storOutcomes<-lapply(1:50, function(i)tryCatch(CustomlmerFnctn(Datasets[[i]]),
error=function(e) NULL ))
在第二种情况下,我可以使用 options(warn=2) 将警告更改为错误,并使用与上述类似的语法。但是,我看不到如何记录拟合对象和收敛状态,即至少出现两个警告
“In mer_finalize (ans) : singular convergence (7)”
或者
“In mer_finalize (ans) : false convergence (8)“
我希望能够将收敛状态与模型参数联系起来。所以基本上我想知道如何捕获警告而不将它们转化为错误。我已经尝试将options(warn=1)
,suppressMessages
和sink(…,
type(“output”,”message”))
与cat()
从模型函数生成迭代/数据集 ID 的语句结合使用,但这只会将连续 ID 写入文件,而在标准输出上留下警告。