Виправлення аргументів функції
Функція гармонійного середнього майже готова. Однак вам ще потрібно додати перевірки для аргументу na.rm. Цього разу, замість того щоб викидати помилки, коли вхідні дані мають неправильний формат, ви спробуєте їх виправити.
na.rm має бути логічним вектором з одним елементом (тобто TRUE або FALSE).
Пакет assertive уже завантажено для вас.
Ця вправа є частиною курсу
Вступ до написання функцій в R
Інструкції до вправи
- Оновіть
calc_harmonic_mean(), щоб виправити аргументna.rm, використавшиuse_first()для вибору першого елементаna.rmтаcoerce_to()для перетворення його на логічний.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Update the function definition to fix the na.rm argument
calc_harmonic_mean <- function(x, na.rm = FALSE) {
assert_is_numeric(x)
if(any(is_non_positive(x), na.rm = TRUE)) {
stop("x contains non-positive values, so the harmonic mean makes no sense.")
}
# Use the first value of na.rm, and coerce to logical
___ <- ___(___(___), ___ = "___")
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it malformed na.rm
calc_harmonic_mean(std_and_poor500$pe_ratio, na.rm = 1:5)