r 中的 tryCatch() 函数 - 如何保存 error/warning 消息?

tryCatch() funtion in r - How can I save error/warning message?

我正在模拟多级数据并将其拟合到各种多级模型。

我想做一个函数,如果有任何错误(例如“收敛失败”或“奇异拟合”),我想保存它。

比如我的模型是

lmer(y~ x1 + x2 + (1|pid), 数据=sim_data).

这里有很多条件,因此各种数据将适合此模型。

如何将错误或警告消息作为一个整体保存在数据框或列表中?

(例如,第一个数据集 -> 没有错误,第二个数据集 -> 收敛错误...等)

您可以使用 for 循环遍历条件或“各种数据”:

0.Setting 创建一个可能会抛出错误的虚拟函数:

dummyfunction <- function(x) {
  if (i == 0) {
    stop("Error occurred")
  }
  return(i * 100)
}

1.Preparing 接收结果列表

result <- list()

2.Iterating 通过不同的“条件”:

for (i in c(-1, 0, 1)) {

  # Using tryCatch to handle errors 
  # that might occur when executing dummyfunction (i.e. put them in the result list)
  #
  result[[as.character(i)]] <- tryCatch(dummyfunction(i),
    error = function(e) e
  )  
  
}