Wie Sie Ihre eigenen Fehlermeldungen in R zu generieren

Ihre eigenen Nachrichten generieren mag seltsam klingen, aber man kann tatsächlich Fehler in R verhindern, indem Sie Ihre eigenen Fehler zu erzeugen. Denken Sie an die Logikfehler in der logitpercent ()

Menu

Funktion? Es hätte so einfach zu erkennen, wenn die logit () Funktion einen Fehler zurückgegeben sagen, dass Sie eine Zahl größer als 1 geführt.

Hinzufügen vernünftige Fehler (oder Warnung) Nachrichten an eine Funktion kann das Debuggen zukünftige Funktionen helfen, wo Sie diese spezielle Funktion erneut aufrufen. Es hilft vor allem bei der semantischen oder logische Fehler zu finden, die sonst nur schwer zu finden sind.

Wie Fehlermeldungen in R zu erstellen

Sie können R sagen, um einen Fehler zu werfen durch das Einfügen halt() funktionieren überall im Körper der Funktion, wie in dem folgenden Beispiel:

logit lt; - Funktion (x), wenn (beliebige (x lt; 0 

Mit dem ob() Anweisung, testen Sie, ob ein Wert in x liegt zwischen 0 und 1 die Verwendung von irgendein() Funktion um den Zustand es erlaubt, Ihren Code mit vollständigen Vektoren auf einmal zu arbeiten, statt mit Einzelwerten. Weil das Log() Funktion funktioniert auch vektorisiert, wird die gesamte Funktion jetzt vektorisiert.

Wenn Sie den Körper des ändern logit () auf diese Weise funktionieren und versuchen, die logit von 50% und 150% (oder 0,5 und 1,5), R wirft einen Fehler wie folgt zu berechnen:

> Logitpercent (c ('50% ',' 150% ')) Fehler bei logit (as.numeric (x) / 100): x nicht zwischen 0 und 1

Wie der Name andeutet, stoppt die Ausführung des Codes jederzeit die halt() Funktion ist eigentlich damit durch außen, es kein Ergebnis zurück.

Wie Warnmeldungen in R zu erstellen

Sie können auch die Funktion eine Warnung statt eines Fehlers erzeugen machen. Auf diese Weise erhalten Sie noch die gleichen Informationen, aber die komplette Funktion wird ausgeführt, so dass Sie auch ein Ergebnis bekommen.

Zur Erzeugung einer Warnung, verwenden Sie die Warnung() Funktion statt der halt() Funktion. Also, um das Ergebnis Ihres Kollegen will, ändern Sie einfach den Körper der Funktion zu den folgenden Code:

 x lt; - ifelse (x lt; 0 | x> 1, NA, x), wenn (beliebige (is.na (x))) Warnung ( 'x nicht zwischen 0 und 1') log (x / (1 - x))

Wenn Sie die Funktion jetzt versuchen, erhalten Sie das gewünschte Ergebnis:

> Logitpercent (c ('50% ',' 150% ')) [1] 0 NAWarning Nachricht: In logit (as.numeric (x) / 100): x nicht zwischen 0 und 1

Nicht nur, dass die Funktion Rückkehr N / A wenn es sein sollte, aber es gibt Ihnen auch eine Warnung, die mit dem Debuggen andere Funktionen helfen kann, dass die Verwendung logit () funktionieren irgendwo im Körper.

Menü