ПочатиПочніть безкоштовно

Власна логіка помилок

Іноді функції assert_*() з пакета assertive не дають найінформативнішого повідомлення про помилку. Наприклад, перевірки, що число входить до числового діапазону, повідомлять користувачеві, що значення поза діапазоном, але не пояснять, чому це проблема. У такому разі ви можете використати функції is_*() разом із повідомленнями, попередженнями або помилками, щоб задати власний зворотний зв'язок.

Гармонічне середнє має сенс лише тоді, коли у x всі значення додатні. (Спробуйте обчислити гармонічне середнє для одного та мінус одного — і побачите чому.) Дайте це зрозуміти своїм користувачам!

Ця вправа є частиною курсу

Вступ до написання функцій в R

Переглянути курс

Інструкції до вправи

  • Якщо будь-які значення x є недодатними (ігноруючи NA), то згенеруйте помилку.
  • Перегляньте, що відбувається, коли ви передаєте символьний аргумент до calc_harmonic_mean().

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

calc_harmonic_mean <- function(x, na.rm = FALSE) {
  assert_is_numeric(x)
  # Check if any values of x are non-positive
  if(___(___(___), na.rm = TRUE)) {
    # Throw an error
    ___("x contains non-positive values, so the harmonic mean makes no sense.")
  }
  x %>%
    get_reciprocal() %>%
    mean(na.rm = na.rm) %>%
    get_reciprocal()
}

# See what happens when you pass it negative numbers
calc_harmonic_mean(std_and_poor500$pe_ratio - 20)
Редагувати та запускати код