capturando um erro e depois ramificando a lógica
Como escrevo código R que me permite executar um caminho diferente no meu código se ocorrer uma condição de erro? Estou usando uma função que tende a gerar um erro. Quando ele encontra uma condição de erro, eu gostaria de executar uma função diferente. Aqui está um exemplo específico:
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)
a função pJohnson deve falhar com o seguinte erro:
Error in pJohnson(0.18, parms) :
Sb values out of range.
Eu posso fazer o erro ficar silencioso usando:
try( pJohnson(.18, parms), silent=T)
mas o que eu realmente quero fazer é executar a funçãoalternativeFunction()
E sepJohnson(.18, parms)
retorna um erro.
Parece que owithCallingHandlers()
função deve me ajudar, mas não consigo descobrir como capturar o erro e fazê-lo executar oalternativeFunction()
somente mediante uma condição de erro.