【发布时间】:2020-09-12 18:41:54
【问题描述】:
我正在对一组数据集运行一个复杂的函数(使用 Amelia 进行多重插补)。每隔一段时间,数据集就会触发一长串最终导致错误的警告。我希望 R 在发出第一个警告后立即放弃并转到下一个数据集。这是一个最小的工作示例:
df.list <- list(
data.frame(1:4),
data.frame(-1, -2, -4),
data.frame(10:15)
)
for(df in df.list){
ans <- sum(sapply(df, sqrt))
print(ans)
}
脚本发出三个关于 NaN 的警告,然后打印:
[1] 6.146264
[1] NaN
[1] 21.1632
我希望它产生 1 条消息input 2 failed,然后只输出有效结果:
[1] 6.146264
[1] 21.1632
(我实际运行的函数 amelia() 在最终抛出错误之前发出警告 10 分钟,所以我想在第一次警告时将其切断。)
【问题讨论】:
-
把你的警告变成错误:stackoverflow.com/questions/8217901/…。然后取你在数据集上调用你的代码的地方,把它包装在
try中。
标签: r exception error-handling suppress-warnings imputation