einen Fehler abfangen und dann die Logik verzweigen

Wie schreibe ich R-Code, mit dem ich im Fehlerfall einen anderen Pfad in meinem Code ausführen kann? Ich benutze eine Funktion, die einen Fehler auslöst. Wenn eine Fehlerbedingung vorliegt, möchte ich eine andere Funktion ausführen. Hier ist ein konkretes Beispiel:

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)

Die pJohnson-Funktion sollte mit dem folgenden Fehler fehlschlagen:

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

Ich kann den Fehler unterdrücken, indem ich Folgendes verwende:

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

aber was ich wirklich tun möchte, ist die Funktion auszuführenalternativeFunction() wennpJohnson(.18, parms) gibt einen Fehler zurück.

Es scheint wie daswithCallingHandlers() Die Funktion sollte mir helfen, aber ich kann nicht herausfinden, wie der Fehler erfasst und ausgeführt werden kannalternativeFunction() nur bei fehlerbedingung.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage