Logiska standardvärden
cut_by_quantile() är nu något enklare att använda, men du behöver fortfarande alltid ange argumentet na.rm. Det här argumentet tar bort saknade värden – det fungerar på samma sätt som na.rm i mean() eller sd().
När funktioner har ett argument för att ta bort saknade värden är bästa praxis att inte ta bort dem som standard (ifall du inte har märkt att du har saknade värden). Det innebär att standardvärdet för na.rm bör vara FALSE.
Den här övningen är en del av kursen
Introduktion till att skriva funktioner i R
Övningsinstruktioner
- Uppdatera definitionen av
cut_by_quantile()så att argumentetna.rmfår standardvärdetFALSE. - Ta bort argumentet
na.rmfrån anropet tillcut_by_quantile().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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]"
)