ÎncepețiÎncepe gratuit

Logică personalizată pentru erori

Uneori, funcțiile assert_*() din assertive nu oferă cele mai clare mesaje de eroare. De exemplu, verificările care testează dacă un număr se află într-un interval numeric îi vor spune utilizatorului că o valoare este în afara intervalului, dar nu vor explica de ce aceasta este o problemă. În astfel de cazuri, poți folosi funcțiile is_*() împreună cu mesaje, avertismente sau erori pentru a defini feedback personalizat.

Media armonică are sens doar atunci când toate valorile din x sunt pozitive. (Încearcă să calculezi media armonică a lui unu și minus unu pentru a înțelege de ce.) Asigură-te că utilizatorii tăi știu acest lucru!

Acest exercițiu face parte din cursul

Introducere în scrierea funcțiilor în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Dacă oricare dintre valorile lui x sunt non-pozitive (ignorând valorile NA), generează o eroare.
  • Observă ce se întâmplă când transmiți un argument de tip caracter funcției calc_harmonic_mean().

Exercițiu interactiv practic

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

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