r - 如何在R中的for循环中捕获错误?

标签 r error-handling try-catch

我在R中运行了一个大型的for循环(不幸的是)。有很多随机错误不断 pop 。如果有任何类型的错误,我是否可以在for循环中放入通用代码,使其跳至下一个迭代?谢谢。如果您为我提供了可以复制和粘贴的代码,我将不胜感激,因为这很麻烦。

最佳答案

loop.vals <- 1:6
success <- logical(length(loop.vals))
for(i in loop.vals) 
 if(
   !inherits(
     try({
       if(i %% 2) stop("Random Error")
       cat("Success", i, "\n")
     }, silent=TRUE),  # as per RHertel
     "try-error"
   ) ) success[[i]] <- TRUE

产生:
Success 2 
Success 4 
Success 6 

然后
cat("Failures: ", which(!success))
# Failures:  1 3 5

旧答案

当然,您可以try整个循环的内容。在这里,我们用一个失败的循环说明每个奇数值
for(i in 1:6) try({
  if(i %% 2) stop("Random Error")
  cat("Success", i, "\n")
})

产生:
Error in try({ : Random Error
Success 2 
Error in try({ : Random Error
Success 4 
Error in try({ : Random Error
Success 6 

关于r - 如何在R中的for循环中捕获错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347018/

相关文章:

r - 当达到空白值时 Purrr 函数编程错误

api - 如何通过Yii2 Api中的错误消息?

vb.net - VB.NET中应使用哪些错误处理

java - Try、catch 和异常处理

dart - Catch 语句不会捕获异步函数中 Debug模式下抛出的错误

r - 处理段错误 : NA breakpoint(s) at the boundary

r - 如何识别和统计R中的交叉项

r - 控制ggplot2图例位置而不改变轴的比例

r - 如何使用 broom::tidy() 从 lme4::lmer() 创建的线性混合效应模型计算 p 值?

reactjs - 在错误边界中包装多个React-Router路由