Как мне написать 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)
но я действительно хочу выполнить функцию alternativeFunction()
, если pJohnson(.18, parms)
вернет ошибку.
Кажется, что функция withCallingHandlers()
должна помочь мне, но я не могу понять, как зафиксировать ошибку и заставить ее запускать alternativeFunction()
только при условии ошибки.