如果 returns 出错,如何跳过 R 循环中的项目?

How to skip an item in a loop in R if it returns an error?

我正在尝试下载维基百科页面以获取姓名列表。不过,并非列表中的所有名称都有 wiki 页面。我想遍历列表,保存存在的页面并跳过不存在的名称。有办法吗?

这是我到达的地方:

library('WikipediR')

names_dat = data.frame(name = c('Donald Trump', 'Jo Biden', 'Fakey McNotreal', 'Bernie Sanders')

wiki_list = list()

for (i in 1:nrow(names_dat)){
  temp = page_content(domain = 'wikipedia.org',
                      page_name = names_dat$name[i],
                      as_wikitext = F)
  wiki_list[[i]] = temp
}

谢谢!

将评论视为可能重复,但我认为这就是您所追求的:

library('WikipediR')

names_dat = data.frame(name = c('Donald Trump', 'Jo Biden', 'Fakey McNotreal', 'Bernie Sanders'))
                       
wiki_list = list()

for (i in 1:nrow(names_dat)){
  tryCatch({
    temp = page_content(domain = 'wikipedia.org',
                        page_name = names_dat$name[i],
                        as_wikitext = F)
    wiki_list[[i]] = temp
  }, error=function(e){cat("ERROR :",conditionMessage(e), "\n")})

}