Jak napisać swoją pierwszą funkcję trycatch() w r
Możesz użyć funkcji tryCatch() w R, aby zwrócić wartość wyrażenia lub wygenerować niestandardowy komunikat w przypadku napotkania ostrzeżenia lub błędu.
Ta funkcja wykorzystuje następującą podstawową składnię:
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) } ) }
Poniższe przykłady pokazują, jak w praktyce używać funkcji tryCatch() .
Przykład: Utwórz funkcję tryCatch() w R
Załóżmy, że tworzymy następującą funkcję tryCatch() , która próbuje pobrać log jednej wartości, a następnie podzielić go przez drugą wartość.
Jeśli wystąpi błąd, wyświetlimy komunikat „Wystąpił błąd”, a następnie wydrukujemy błąd w R.
Jeśli pojawi się ostrzeżenie, wyświetlimy komunikat „Wystąpiło ostrzeżenie”, wydrukujemy ostrzeżenie do R, a następnie zwrócimy wartość NA.
Jeśli nie wystąpią żadne błędy ani ostrzeżenia, po prostu zwrócimy wynik funkcji.
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)
}
)
}
Uruchommy tę funkcję w różnych scenariuszach.
Scenariusz 1: Nie występują żadne błędy ani ostrzeżenia.
Poniższy kod pokazuje, jak używać tej funkcji w scenariuszu, w którym nie występują żadne błędy ani ostrzeżenia.
#run function
log_and_divide(10, 2)
[1] 1.151293
Ponieważ nie występują żadne błędy ani ostrzeżenia, funkcja po prostu zwraca wynik wyrażenia, który okazuje się wynosić 1.151293 .
Scenariusz 2: Wystąpił błąd.
Poniższy kod pokazuje, jak używać tej funkcji w scenariuszu, w którym wystąpi błąd:
#run function
log_and_divide(10)
An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
argument "y" is missing, with no default>
Ponieważ podaliśmy tylko jeden argument funkcji, otrzymujemy komunikat „ Wystąpił błąd ” i widzimy także dokładny błąd wygenerowany przez R.
Scenariusz 3: Występuje ostrzeżenie.
Poniższy kod pokazuje, jak używać tej funkcji w scenariuszu, w którym pojawia się ostrzeżenie:
#run function
log_and_divide(-10, 2)
A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA
Ponieważ podaliśmy wartość ujemną dla pierwszego argumentu, R nie jest w stanie obliczyć logu wartości ujemnej, więc otrzymujemy komunikat „ Wystąpiło ostrzeżenie ”, widzimy dokładne ostrzeżenie wygenerowane przez R i funkcja zwraca NA jako ma wartość ujemną. wynik.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:
Jak utworzyć zagnieżdżoną pętlę For w R
Jak dodać wartości do wektora za pomocą pętli w R
Jak zwrócić wartość funkcji w R