R 脚本 - 如何在出错时继续执行代码

标签 r

我编写了一个 R 脚本,其中包含一个用于检索外部(Web)数据的循环。数据的格式大部分时间是相同的,但有时格式会以不可预测的方式发生变化,并且我的循环崩溃(停止运行)。

不管错误如何,有没有办法继续执行代码?我正在寻找类似于 VBA 中的“On error Resume Next”的内容。

先感谢您。

最佳答案

使用 trytryCatch .

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)
}

关于R 脚本 - 如何在出错时继续执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852406/

相关文章:

r - 每天汇总表值​

r - 从多个数据框中选择第一行并绑定(bind)

r - 如何在属于包的 R 函数内自定义绘图?

r - 如何在ggplot2中的两个关联点之间添加多条线段?

r - grid.arrange 将所有表格对齐到 Rmarkdown 的顶部

r - 使用googleCloudStorageR的gcs_upload将文件上传到google云存储桶以实现统一的桶级访问

R Markdown - 变量输出名称

R语言-提取两个分隔符之间的字符串

r - 提取满足条件的每一行的列名

r - 为变量中的每个唯一元素创建一个转换矩阵