IniziaInizia gratis

Valori predefiniti logici

Ora cut_by_quantile() è un po' più semplice da usare, ma devi ancora specificare sempre l'argomento na.rm. Questo rimuove i valori mancanti — si comporta come l'argomento na.rm di mean() o sd().

Quando una funzione prevede un argomento per rimuovere i valori mancanti, la buona pratica è non rimuoverli di default (nel caso non ti fossi accorto che ci sono valori mancanti). Questo significa che il valore predefinito di na.rm dovrebbe essere FALSE.

Questo esercizio fa parte del corso

Introduzione alla scrittura di funzioni in R

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiorna la definizione di cut_by_quantile() in modo che l'argomento na.rm abbia come valore predefinito FALSE.
  • Rimuovi l'argomento na.rm dalla chiamata a cut_by_quantile().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Set the default for na.rm to FALSE
cut_by_quantile <- function(x, n = 5, na.rm, labels, interval_type) {
  probs <- seq(0, 1, length.out = n + 1)
  qtiles <- quantile(x, probs, na.rm = na.rm, names = FALSE)
  right <- switch(interval_type, "(lo, hi]" = TRUE, "[lo, hi)" = FALSE)
  cut(x, qtiles, labels = labels, right = right, include.lowest = TRUE)
}

# Remove the na.rm argument from the call
cut_by_quantile(
  n_visits, 
  na.rm = FALSE, 
  labels = c("very low", "low", "medium", "high", "very high"),
  interval_type = "(lo, hi]"
)
Modifica ed esegui il codice