gpt4 book ai didi

在 r 中重复运行一个函数,直到不产生错误。

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

很抱歉,我无法从一开始就告诉您这些功能是什么。

我有一个函数CheckOutCell .它需要一个参数,即数字 764 .所以每次我运行这个函数时,它看起来都是这样的:CheckOutCell(764) .

现在很多时候该函数会给我一个错误:

Error in checkInCell(764) : 
The function is currently locked; try again in a minute.

这是一条自定义错误消息,详细信息对这个问题并不重要。

现在,这个功能可以从 30 秒到一个小时的任何时间被锁定。我希望能够自动运行 CheckOutCell(764)直到它通过, 然后停止运行 .也就是说,运行它直到我没有收到错误,然后停止。

我认为开始会使用
while(capture.output(checkInCell(764)) == "Error in checkInCell(764) : 
The function is currently locked; try again in a minute."){
do something}

然而,这只是产生
Error in checkInCell(764) : 
The function is currently locked; try again in a minute.

因为该功能仍然被锁定,所以无法捕获任何输出。

我将如何测试 while(error = T)
假设函数的源代码不能被修改。

is.error(CheckInCell(764))只会产生相同的错误消息

最佳答案

所以看起来这段代码在某种程度上是有效的

wrapcheck <- function(x){
repeatCheck =tryCatch(checkOutCell(764),
error = function(cond)"skip")

SudoCheck = ifelse(repeatCheck=="skip",repeatCheck, checkOutCell(764))

while(SudoCheck == "skip"){
repeatCheck
}
}

包装检查(764)
基本上,这会检查错误,然后继续运行该函数,直到不产生错误为止。事实上,我相当有信心这将适用于您想要代替 CheckOutCell 的任何功能。 .

主要问题是当函数被锁定时,它并不是真正的错误,它是 锁定 .因此,上面的 block 将不起作用。当产生锁以外的错误时,上述 block 将起作用。

关于在 r 中重复运行一个函数,直到不产生错误。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445719/

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