IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiorna calc_harmonic_mean() per correggere l'argomento na.rm usando use_first() per selezionare il primo elemento di na.rm, e coerce_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)
Modifica ed esegui il codice