我编写了一个 R 脚本,其中包含一个检索外部(Web)数据的循环。数据的格式大多数时候是相同的,但有时格式会以不可预测的方式发生变化,并且我的循环崩溃(停止运行)。
有没有办法不管错误如何继续执行代码?我正在寻找类似于 VBA 中的“On error Resume Next”的内容。
先感谢您。
Use try
or tryCatch
.
for(i in something)
{
res <- try(expression_to_get_data)
if(inherits(res, "try-error"))
{
#error handling code, maybe just skip this iteration using
next
}
#rest of iteration for case of no error
}
现代方法是使用purrr::possibly
.
首先,编写一个获取数据的函数,get_data()
.
然后修改该函数以在发生错误时返回默认值。
get_data2 <- possibly(get_data, otherwise = NA)
现在在循环中调用修改后的函数。
for(i in something) {
res <- get_data2(i)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)