Generare errori con argomenti non validi
Se un utente fornisce un input non valido a una funzione, la scelta migliore è generare un errore per informarlo. Le due regole sono:
- Genera il messaggio di errore non appena ti accorgi che c'è un problema (di solito all'inizio della funzione).
- Rendi il messaggio di errore facile da capire.
Puoi usare le funzioni assert_*() di assertive per controllare gli input e generare errori quando non superano i controlli.
Questo esercizio fa parte del corso
Introduzione alla scrittura di funzioni in R
Istruzioni dell'esercizio
- Aggiungi una riga al corpo di
calc_harmonic_mean()per verificare chexsia numerico. - Guarda cosa succede quando passi un argomento di tipo character a
calc_harmonic_mean().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)