r - 错误打破for循环: conditional try statement?

标签 r error-handling try-catch

我在R中有一个for循环:

for i in seq(1 , nrow(df)){
  try(function(i),silent=T)
}

我想对此进行修改,以便在显示错误消息时,该函数再重复一次for循环。如果再次失败-
message(paste("function failed twice for", i))

`

try()是否适合此目的?

最佳答案

我不知道任何R,但我猜测您可以执行以下操作:

errorCount = 0
for i in seq(1 , nrow(df)){
  tryCatch(function(i),silent=T, 
          error = {errorCount +=1,
          tryCatch(function(i), silent=T, 
                   error = {errorCount +=1
                            print("2 times error")
                            tryCatch(function(i), silent=T, 
                            error = {errorCount +=1
                            tryCatch(function(i), silent=T, 
                            error = {print("3 times error: Did not repeat")
                                     break})
                            } )
                   })
          )
}


对不起,我的代码很糟糕-我按照您指定的那样进行了3次,但是您必须修复语法。建议其他答案。

关于r - 错误打破for循环: conditional try statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59381916/

相关文章:

c++ - 如何制作一个cpp(Rcpp)函数,在输入类型错误时触发 "useful"错误消息?

vba - VBA 出错时如何从函数返回

php - 在PHP中使用trigger_error时如何获得正确的行号?

java - 如何在一种方法上使用两台扫描仪

r - Shiny:ProgressBar,用于将数据从数据库加载到数据表(DT)

r - 您是如何经历从 SPSS 到 R 的过渡的?

R 如果滞后条件匹配,则用 NA 填充新列

c# - 使用 catch-all 模式时无法声明未使用的异常变量

flutter - flutter 一些异常未得到处理/捕获

r - dplyr - 多个变量的汇总表