Začněte nyníZačněte zdarma

Oprava argumentů funkce

Funkce pro harmonický průměr je skoro hotová. Ještě ale potřebuješ ošetřit argument na.rm. Tentokrát místo vyhazování chyb při nesprávném vstupu zkusíš hodnotu rovnou opravit.

na.rm by měl být logický vektor s jedním prvkem (tedy TRUE, nebo FALSE).

Balíček assertive je už načtený.

Toto cvičení je součástí kurzu

Introduction to Writing Functions in R

Zobrazit kurz

Pokyny k cvičení

  • Uprav calc_harmonic_mean() tak, aby opravila argument na.rm: použij use_first() pro výběr prvního prvku na.rm a coerce_to() pro jeho převod na logický typ.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód