首页 > 解决方案 > 如何在 R 中的 For 循环中跳过错误。并提取导致错误的 i 列表单独处理它们

问题描述

我写下一个for循环-

df_total<-data.frame()
**for (i in unique(danadata$product))
{
  maindatatest <- danadata %>%  filter(product %in% i )
  print(i)

  df <-  synth.func(maindatatest)
  df_total<-rbind(df_total,df)
}**

一切正常,直到我收到下一个错误-

> Error in svd(c) : infinite or missing values in 'x'

我不完全理解是什么导致了这个问题,因为我在同一个问题上运行,我分别运行它的功能。无论如何,我想跳过错误,循环将继续工作。我意识到我应该添加一些看起来像这样的东西 -

for (i in 1:10) {

  skip_to_next <- FALSE

  # Note that print(b) fails since b doesn't exist

  tryCatch(print(b), error = function(e) { skip_to_next <- TRUE})

  if(skip_to_next) { next }     
}

我无法将解决方案集成到上面的原始循环错误中,我很想寻求帮助。此外,我想获得导致问题的 i 的列表,因此我将分别处理它们。

谢谢!

标签: r

解决方案


推荐阅读