So schreiben sie ihre erste trycatch()-funktion in r
Sie können eine tryCatch() -Funktion in R verwenden, um den Wert eines Ausdrucks zurückzugeben oder eine benutzerdefinierte Meldung zu erzeugen, wenn eine Warnung oder ein Fehler auftritt.
Diese Funktion verwendet die folgende grundlegende Syntax:
my_function <- function (x, y){ tryCatch ( #try to do this { #some expression }, #if an error occurs, tell me the error error= function (e) { message(' An Error Occurred ') print(e) }, #if a warning occurs, tell me the warning warning= function (w) { message(' A Warning Occurred ') print(w) return (NA) } ) }
Die folgenden Beispiele zeigen, wie man eine tryCatch()- Funktion in der Praxis verwendet.
Beispiel: Erstellen Sie eine tryCatch()-Funktion in R
Nehmen wir an, wir erstellen die folgende tryCatch()- Funktion, die versucht, den Logarithmus eines Werts zu nehmen und ihn dann durch einen zweiten Wert zu dividieren.
Wenn ein Fehler auftritt, geben wir die Meldung „Ein Fehler ist aufgetreten“ aus und geben den Fehler dann an R aus.
Wenn eine Warnung auftritt, geben wir die Meldung „Eine Warnung ist aufgetreten“ aus, geben die Warnung an R aus und geben dann einen NA-Wert zurück.
Wenn keine Fehler oder Warnungen auftreten, geben wir einfach das Funktionsergebnis zurück.
log_and_divide <- function (x, y){
tryCatch (
{
result = log(x) / y
return (result)
},
error= function (e) {
message(' An Error Occurred ')
print(e)
},
warning= function (w) {
message(' A Warning Occurred ')
print(w)
return (NA)
}
)
}
Lassen Sie uns diese Funktion in verschiedenen Szenarien ausführen.
Szenario 1: Es treten keine Fehler oder Warnungen auf.
Der folgende Code zeigt, wie die Funktion in einem Szenario verwendet wird, in dem keine Fehler oder Warnungen auftreten.
#run function
log_and_divide(10, 2)
[1] 1.151293
Da keine Fehler oder Warnungen auftreten, gibt die Funktion einfach das Ergebnis des Ausdrucks zurück, das sich als 1.151293 herausstellt.
Szenario 2: Ein Fehler tritt auf.
Der folgende Code zeigt, wie die Funktion in einem Szenario verwendet wird, in dem ein Fehler auftritt:
#run function
log_and_divide(10)
An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
argument "y" is missing, with no default>
Da wir der Funktion nur ein Argument bereitgestellt haben, erhalten wir die Meldung „ Ein Fehler ist aufgetreten “ und sehen auch den genauen Fehler, der von R erzeugt wurde.
Szenario 3: Eine Warnung tritt auf.
Der folgende Code zeigt, wie die Funktion in einem Szenario verwendet wird, in dem eine Warnung auftritt:
#run function
log_and_divide(-10, 2)
A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA
Da wir für das erste Argument einen negativen Wert angegeben haben, kann R den Logarithmus eines negativen Werts nicht berechnen, daher erhalten wir die Meldung „ Eine Warnung ist aufgetreten “, wir sehen die genaue von R erzeugte Warnung und die Funktion gibt NA als zurück hat einen negativen Wert. Ergebnis.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:
So erstellen Sie eine verschachtelte For-Schleife in R
So fügen Sie mithilfe einer Schleife in R Werte zu einem Vektor hinzu
So geben Sie den Wert einer Funktion in R zurück