отлов ошибки и затем логика ветвления
Как мне написать код 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()
только при условии ошибки.