我有一个简单的for循环,一旦出现警告,我想从一个单个消息退出。我和tryCatch
一样尝试过这样:
for (i in 1:10) {
tryCatch({
sqrt(-1)},
warning = function(error_message) {
message("My own warning message.")
break})}
但这会产生错误:
Error in value[[3L]](cond) : no loop for break/next, jumping to top level
如果我省略break
,我会收到十个警告而不是一个警告。
答案 0 :(得分:2)
一种选择是将break
功能置于tryCatch
for (i in 1:10) {
tryCatch({sqrt(-1)},
warning = function(error_message) {
message("My own warning message.")
})
break
}
在这种情况下,错误不会出现