ÎncepețiÎncepe gratuit

Corectarea argumentelor funcției

Funcția pentru media armonică este aproape finalizată. Mai trebuie însă să adaugi câteva verificări pentru argumentul na.rm. De data aceasta, în loc să generezi erori când datele de intrare au un format incorect, vei încerca să le corectezi.

na.rm trebuie să fie un vector logic cu un singur element (adică TRUE sau FALSE).

Pachetul assertive este deja încărcat pentru tine.

Acest exercițiu face parte din cursul

Introducere în scrierea funcțiilor în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Actualizează calc_harmonic_mean() pentru a corecta argumentul na.rm, folosind use_first() pentru a selecta primul element al lui na.rm și coerce_to() pentru a-l converti la tip logic.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul