attraper une erreur, puis la logique

Comment puis-je écrire R code qui me permet d'exécuter un chemin différent dans mon code si une condition d'erreur se produit? Je suis à l'aide d'une fonction qui tend à jeter une erreur. Quand il rencontre une condition d'erreur, je voudrais exécuter une fonction différente. Voici un exemple précis:

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)

la pJohnson fonction doit échouer avec l'erreur suivante:

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

Je peux faire l'erreur d'aller silencieuse à l'aide de:

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

mais ce que je veux vraiment faire est d'exécuter la fonction alternativeFunction() si pJohnson(.18, parms) renvoie une erreur.

Il semble que la withCallingHandlers() fonction devrait m'aider, mais je ne peux pas comprendre comment capturer l'erreur et de faire fonctionner le alternativeFunction() seulement à une condition d'erreur.

InformationsquelleAutor JD Long | 2010-01-28