Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在发生错误后不使用try()或tryCatch()继续R中的for循环_R_Try Catch - Fatal编程技术网

有没有一种方法可以在发生错误后不使用try()或tryCatch()继续R中的for循环

有没有一种方法可以在发生错误后不使用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

我正在通过一个用于NLP处理的API运行一个字符串列表。有时令牌的数量太短,API返回错误。我已经排除了较小的字符串,但有时会存在不一致性(例如,我认为很快就是令牌的东西会被API拒绝)。只有几个,但这是一个很长的列表,我想让它贯穿整个晚上,而不是每隔一段时间检查一次

这就是为什么我需要循环在出错后继续

所以我已经解决了这个问题,但它不是最优的,我使用try命令检查是否有错误:

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正在要求他应得的;)。再次感谢您的回答。