NULL-standaardwaarden
De cut()-functie die door cut_by_quantile() wordt gebruikt, kan automatisch logische labels voor elke categorie genereren. De code om deze labels te maken is best ingewikkeld. Daarom staat die niet direct in de functiedefinitie, maar krijgt het argument labels de standaardwaarde NULL, en worden de rekenstappen uitgelegd op de help-pagina van cut() (docs).
Deze oefening maakt deel uit van de cursus
Introductie tot functies schrijven in R
Oefeninstructies
- Werk de definitie van
cut_by_quantile()bij zodat het argumentlabelsstandaardNULLis. - Verwijder het argument
labelsuit de aanroep vancut_by_quantile().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Set the default for labels to NULL
cut_by_quantile <- function(x, n = 5, na.rm = FALSE, 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 labels argument from the call
cut_by_quantile(
n_visits,
labels = c("very low", "low", "medium", "high", "very high"),
interval_type = "(lo, hi]"
)