【发布时间】:2020-03-23 20:50:33
【问题描述】:
我是 R 新手,我已经检查了大多数在线链接,但我无法解决问题。 这是我正在做的蒙特卡罗模拟的可重现示例:
rm(list = ls())
x=c(-2,3,-1,4,'A')
y=rep(0,5)
for(i in 1:5){
tryCatch(
expr = {
y[i]=log(x[i])
},
error = function(e){
message('Caught an error!',i)
return(NA)
},
warning = function(w){
message('Caught an warning!',i)
return(NA)
}
)
}
请问如何修复代码,以便在 for 循环结束时,R 将 y 的值返回为
y= NA,log(3),NA,log(4),NA
i=1,3,5
以及出现错误或警告的 i 的值。 也就是说,错误和警告被替换为 NA 并返回成功的评估,并且还返回出现错误或警告的 i 的值。
谢谢
【问题讨论】:
标签: r for-loop error-handling try-catch warnings