我在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/