有没有一种方法可以在发生错误后不使用try()或tryCatch()继续R中的for循环
我正在通过一个用于NLP处理的API运行一个字符串列表。有时令牌的数量太短,API返回错误。我已经排除了较小的字符串,但有时会存在不一致性(例如,我认为很快就是令牌的东西会被API拒绝)。只有几个,但这是一个很长的列表,我想让它贯穿整个晚上,而不是每隔一段时间检查一次 这就是为什么我需要循环在出错后继续 所以我已经解决了这个问题,但它不是最优的,我使用try命令检查是否有错误:有没有一种方法可以在发生错误后不使用try()或tryCatch()继续R中的for循环,r,try-catch,R,Try Catch,我正在通过一个用于NLP处理的API运行一个字符串列表。有时令牌的数量太短,API返回错误。我已经排除了较小的字符串,但有时会存在不一致性(例如,我认为很快就是令牌的东西会被API拒绝)。只有几个,但这是一个很长的列表,我想让它贯穿整个晚上,而不是每隔一段时间检查一次 这就是为什么我需要循环在出错后继续 所以我已经解决了这个问题,但它不是最优的,我使用try命令检查是否有错误: for(i in 1:nrow(df){ #First I've filtered out what content
for(i in 1:nrow(df){
#First I've filtered out what content is clearly too short:
if(sapply(strsplit(df$Content[i], " "), length) > 19){
res <- try(temp_analysis <- gl_nlp(df$Content[i], language = "en"))
if(inherits(res, "try-error"))
{
next
}
temp_analysis <- gl_nlp(df$Content[i], language = "en")
And then some other stuff here
}
}
for(1中的i:nrow(df){
#首先,我过滤掉了明显太短的内容:
if(sapply(strsplit(df$Content[i],“”),长度)>19){
res您不需要使用try
访问API两次。下面是一个简单的示例:
res <- try(a)
#Error in try(a) : object 'a' not found
class(res)
#[1] "try-error"
a <- 1
res <- try(a)
res
#[1] 1
res干杯。我的循环现在正在运行,所以我将在几个小时后尝试您的解决方案,然后确认它是否有效。我可以向您保证它有效。只需执行temp_分析哈哈。好的,我看到Cesar正在要求他应得的;)。再次感谢您的回答。