gpt4 book ai didi

r - 捕获错误然后分支逻辑

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

如何编写 R 代码,以便在发生错误情况时能够在代码中执行不同的路径?我正在使用一个容易引发错误的函数。当它遇到错误条件时,我想执行不同的函数。下面是一个具体的例子:

require(SuppDists)
parms <- structure(list(gamma = -0.841109044800762, delta = 0.768672140584442,
xi = -0.359199299528801, lambda = 0.522761187947026, type = "SB"), .Names = c("gamma",
"delta", "xi", "lambda", "type"))
pJohnson(.18, parms)

pJohnson 函数应该失败并出现以下错误:

 Error in pJohnson(0.18, parms) :
Sb values out of range.

我可以使用以下方法使错误消失:

try( pJohnson(.18, parms), silent=T)

但我真正想做的是,如果 pJohnson(.18, parms) 返回错误,则执行函数 alternativeFunction()

看起来 withCallingHandlers() 函数应该可以帮助我,但我不知道如何捕获错误并使其运行 alternativeFunction()仅在出现错误情况时。

最佳答案

t <- try(pJohnson(.18, parms))
if("try-error" %in% class(t)) alternativeFunction()

关于r - 捕获错误然后分支逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2158780/

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