Як написати вашу першу функцію trycatch() у r
Ви можете використовувати функцію tryCatch() у R, щоб повернути значення виразу або створити спеціальне повідомлення, якщо виникне попередження або помилка.
Ця функція використовує такий базовий синтаксис:
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) } ) }
У наступних прикладах показано, як використовувати функцію tryCatch() на практиці.
Приклад: створіть функцію tryCatch() у R
Припустімо, ми створюємо наступну функцію tryCatch() , яка намагається взяти журнал одного значення, а потім розділити його на друге значення.
Якщо сталася помилка, ми виведемо повідомлення «Сталася помилка», а потім надрукуємо помилку на R.
Якщо з’явиться попередження, ми виведемо повідомлення «Виникло попередження», надрукуємо попередження на R, а потім повернемо значення NA.
Якщо помилок або попереджень не буде, ми просто повернемо результат функції.
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)
}
)
}
Давайте запустимо цю функцію в різних сценаріях.
Сценарій 1: помилки чи попередження не виникають.
У наведеному нижче коді показано, як використовувати функцію в сценарії, у якому не виникає помилок або попереджень.
#run function
log_and_divide(10, 2)
[1] 1.151293
Оскільки помилок чи попереджень не виникає, функція просто повертає результат виразу, який виявляється 1,151293 .
Сценарій 2: сталася помилка.
У наведеному нижче коді показано, як використовувати функцію в ситуації, коли виникає помилка:
#run function
log_and_divide(10)
An Error Occurred
<simpleError in doTryCatch(return(expr), name, parentenv, handler):
argument "y" is missing, with no default>
Оскільки ми надали функції лише один аргумент, ми отримуємо повідомлення « Сталася помилка », а також бачимо точну помилку, створену R.
Сценарій 3: Виходить попередження.
У наведеному нижче коді показано, як використовувати функцію в ситуації, коли виникає попередження:
#run function
log_and_divide(-10, 2)
A Warning Occurred
<simpleWarning in log(x): NaNs produced>
[1] NA
Оскільки ми вказали від’ємне значення для першого аргументу, R не може обчислити журнал від’ємного значення, тому ми отримуємо повідомлення « Сталося попередження », ми бачимо точне попередження, створене R, і функція повертає NA як має негативне значення. результат.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в R:
Як створити вкладений цикл For у R
Як додати значення до вектора за допомогою циклу в R
Як повернути значення функції в R