Hoe u uw eerste trycatch()-functie schrijft in r


U kunt een tryCatch() -functie in R gebruiken om de waarde van een expressie te retourneren of een aangepast bericht te genereren als er een waarschuwing of fout wordt aangetroffen.

Deze functie gebruikt de volgende basissyntaxis:

 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)
        }
    )
}

De volgende voorbeelden laten zien hoe u een tryCatch()- functie in de praktijk kunt gebruiken.

Voorbeeld: Maak een tryCatch()-functie in R

Laten we zeggen dat we de volgende tryCatch()- functie maken die probeert de log van één waarde te nemen en deze vervolgens door een tweede waarde te delen.

Als er een fout optreedt, geven we het bericht „Er is een fout opgetreden“ weer en drukken we de fout vervolgens af naar R.

Als er een waarschuwing optreedt, geven we het bericht ‚Er is een waarschuwing opgetreden‘ weer, drukken we de waarschuwing af naar R en retourneren we vervolgens een NA-waarde.

Als er geen fouten of waarschuwingen optreden, retourneren we eenvoudigweg het functieresultaat.

 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)
        }
    )
}

Laten we deze functie in verschillende scenario’s uitvoeren.

Scenario 1: Er treden geen fouten of waarschuwingen op.

De volgende code laat zien hoe u de functie kunt gebruiken in een scenario waarin geen fouten of waarschuwingen optreden.

 #run function
log_and_divide(10, 2)

[1] 1.151293

Omdat er geen fouten of waarschuwingen optreden, retourneert de functie eenvoudigweg het resultaat van de expressie, dat 1.151293 blijkt te zijn.

Scenario 2: Er treedt een fout op.

De volgende code laat zien hoe u de functie kunt gebruiken in een scenario waarin een fout optreedt:

 #run function
log_and_divide(10)

An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
  argument "y" is missing, with no default>

Omdat we slechts één argument aan de functie hebben opgegeven, ontvangen we het bericht “ Er is een fout opgetreden “ en zien we ook de exacte fout die door R wordt geproduceerd.

Scenario 3: Er treedt een waarschuwing op.

De volgende code laat zien hoe u de functie kunt gebruiken in een scenario waarin een waarschuwing optreedt:

 #run function
log_and_divide(-10, 2)

A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA

Omdat we een negatieve waarde hebben opgegeven voor het eerste argument, kan R de log van een negatieve waarde niet berekenen, dus ontvangen we het bericht “ Er heeft zich een waarschuwing voorgedaan „. We zien de exacte waarschuwing geproduceerd door R en de functie retourneert NA als heeft een negatieve waarde. resultaat.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:

Hoe maak je een geneste For-lus in R
Hoe waarden aan een vector toe te voegen met behulp van een lus in R
Hoe de waarde van een functie in R te retourneren

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert