gpt4 book ai didi

R:For循环如果错误则跳过/tryCatch

转载 作者:行者123 更新时间:2023-12-02 04:20:44 30 4
gpt4 key购买 nike

我有一个 1000 行的数据框。我想要循环的代码非常简单 - 我只想将第 4 列中的所有值设为大写。我希望它能够在任何行中出现错误时跳过该行并继续执行其余行。

我写了这段代码:

for(i in 1:1000)
{
tryCatch(toupper(Total_Data_2[i,4]), error = function(e) next)
}

但是,我收到错误:值[[3L]](cond)中的错误:没有循环用于中断/下一个,跳转到顶层

有人可以帮我解决这个问题吗?我可以执行 tryCatch 或某种 if iserror。

提前致谢!!

最佳答案

虽然我认为这不一定是最好的解决方案,但它确实直接回答了您的问题(为了重现性而简化):

for(i in 1:10) {
res <- try(if(i %% 2) stop("argh"))
if(inherits(res, "try-error")) next
cat(i, "\n")
}

仅使用 try 而不是 tryCatch b/c 它更简单,并且不需要 tryCatch 功能。实际上,为了您的目的,您可以:

for(i in 1:10) try(my_val[i] <- my_fun(my_val[i]))

因为您不需要做任何其他事情。如果失败,循环将继续愉快地进行。

尽管如此,我不得不说我对您的错误以及无法以矢量化方式执行此操作感到有点困惑。

关于R:For循环如果错误则跳过/tryCatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671246/

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