gpt4 book ai didi

r - 在循环中检测错误

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

以下:

install.packages("quantreg")
require(quantreg)

y=rnorm(10)
x=rnorm(10)

summary(rq(y~x,tau=0.01),se="ker")

生成错误 Error in summary.rq(rq(y ~ x, tau = 0.01), se = "ker") :
tau - h < 0: error in summary.rq


假设我将不同的 yx循环了1000次。我希望能够知道何时发生错误并实现修复中循环。

但是,我使用 summary(rq(y~x,tau=0.01),se="ker")等使用 is()的所有尝试都无济于事。我以前从未使用过这种对象类型(并且Google/SE搜索尚未揭示答案)。

我想要像 is.error(summary(rq(y~x,tau=0.01),se="ker"))这样的东西,它实际上并不存在。

最佳答案

以下命令将返回指示是否发生错误的逻辑值:

class(tryCatch(summary(rq(y ~ x,tau = 0.01),se = "ker"),
error = function(e) e))[1] == "simpleError"

您可以使用 replicate代替for循环。效率更高。在下面的示例中,返回包括 xy和逻辑 error值的列表。该过程重复两次。您可以使用 n = 1000将其复制1000次。
replicate(n = 2,
expr = {y <- rnorm(10);
x <- rnorm(10);
error <- class(tryCatch(summary(rq(y ~ x,tau = 0.01),se = "ker"), error = function(e) e))[1] == "simpleError";
return(list(x = x, y = y, error = error))},
simplify = FALSE)

关于r - 在循环中检测错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434885/

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