gpt4 book ai didi

r - 有没有办法在错误后继续 R 中的 for 循环而不使用 try() 或 tryCatch()

转载 作者:行者123 更新时间:2023-12-03 08:52:42 26 4
gpt4 key购买 nike

我正在通过 NLP 处理的 API 运行字符串列表。有时 token 数量太短,API 会返回错误。我已经排除了较小的字符串,但有时会出现不一致的情况(例如,我很快认为是 token 的内容被 API 拒绝了)。虽然只有几个,但 list 很长,我想让它贯穿整个晚上,而不是每隔一段时间检查一次。

这就是为什么我需要在发生错误后继续循环。

所以我已经解决了这个问题,但它不是最佳的,我使用了 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

}
}

这工作得很好,但问题是它访问 API 两次,因此速度较慢,并且向我收取两次费用。

那么有没有办法获得同样的效果,但不使用 try 命令呢?或者该命令的派生版本实际上不需要首先调用 API?

提前致谢。

最佳答案

您不需要使用 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

关于r - 有没有办法在错误后继续 R 中的 for 循环而不使用 try() 或 tryCatch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57953400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com