Correggere gli argomenti della funzione
La funzione per la media armonica è quasi completa. Tuttavia, devi ancora aggiungere alcuni controlli sull'argomento na.rm. Questa volta, invece di generare errori quando l'input non è nel formato corretto, proverai a correggerlo.
na.rm dovrebbe essere un vettore logico con un solo elemento (cioè TRUE o FALSE).
Il pacchetto assertive è già caricato per te.
Questo esercizio fa parte del corso
Introduzione alla scrittura di funzioni in R
Istruzioni dell'esercizio
- Aggiorna
calc_harmonic_mean()per correggere l'argomentona.rmusandouse_first()per selezionare il primo elemento dina.rm, ecoerce_to()per convertirlo in logico.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)