Logiczne wartości domyślne
cut_by_quantile() jest teraz nieco wygodniejsza w użyciu, ale nadal trzeba za każdym razem podawać argument na.rm. Usuwa on brakujące wartości – działa tak samo jak argument na.rm w funkcjach mean() czy sd().
Jeśli funkcja posiada argument do usuwania brakujących wartości, najlepszą praktyką jest nie usuwać ich domyślnie (na wypadek gdybyś nie zauważył, że dane zawierają brakujące wartości). Oznacza to, że wartość domyślna argumentu na.rm powinna wynosić FALSE.
To ćwiczenie jest częścią kursu
Wprowadzenie do pisania funkcji w R
Instrukcje do ćwiczenia
- Zaktualizuj definicję funkcji
cut_by_quantile()tak, aby argumentna.rmmiał domyślną wartośćFALSE. - Usuń argument
na.rmz wywołania funkcjicut_by_quantile().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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]"
)