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
Istruzioni dell'esercizio
- Aggiorna la definizione di
cut_by_quantile()in modo che l'argomentona.rmabbia come valore predefinitoFALSE. - Rimuovi l'argomento
na.rmdalla chiamata acut_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]"
)