我正在 $ R $ 中运行 $ for $ 循环。大约有一百万次迭代。碰巧某些迭代会导致错误。对于不同的迭代,误差可能不同。问题是:如果其中有错误,如何跳过迭代而不检查特定条件(通常这样做是为了退出for循环)....即这里退出当前迭代的条件是该迭代有错误。 我只想跳过错误的迭代,然后跳过下一个迭代。
类似:
if error:
output = 0
skip to next iteration
答案 0 :(得分:0)
您可能正在寻找try
或tryCatch
。例如,将值平方在简单的整数和字符列表中:
vec <- list(1, 2, 3, "c", 4, 5, 6)
使用try
仅在遇到错误时继续:
for (x in vec) {
try(print(x^2), silent = T)
}
# [1] 1
# [1] 4
# [1] 9
# [1] 16
# [1] 25
# [1] 36
使用tryCatch
来执行类似打印特定消息之类的操作:
for (x in vec) {
tryCatch(print(x^2),
error = function(cond) message(paste(x, "is not a number"))
)
}
# [1] 1
# [1] 4
# [1] 9
# c is not a number
# [1] 16
# [1] 25
# [1] 36