Генерування помилок для некоректних аргументів
Якщо користувач передає до функції некоректні дані, найкраще — згенерувати помилку й повідомити про це. Два правила такі:
- Викидайте повідомлення про помилку щойно зрозумієте, що є проблема (зазвичай на початку функції).
- Зробіть повідомлення про помилку легким для розуміння.
Ви можете використовувати функції assert_*() з пакета assertive, щоб перевіряти вхідні дані й викидати помилки, якщо перевірка не проходить.
Ця вправа є частиною курсу
Вступ до написання функцій в R
Інструкції до вправи
- Додайте в тіло
calc_harmonic_mean()рядок, який перевіряє, щоxє числовим. - Подивіться, що станеться, якщо передати символьний аргумент до
calc_harmonic_mean().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)