Aan de slagGa gratis aan de slag

Logische standaardwaarden

cut_by_quantile() is nu net iets makkelijker te gebruiken, maar je moet nog steeds altijd het argument na.rm opgeven. Dit verwijdert missende waarden — het werkt hetzelfde als het argument na.rm van mean() of sd().

Als functies een argument hebben om missende waarden te verwijderen, is de best practice om ze standaard niet te verwijderen (voor het geval je niet had gezien dat je missende waarden had). Dat betekent dat de standaard voor na.rm FALSE moet zijn.

Deze oefening maakt deel uit van de cursus

Introductie tot functies schrijven in R

Cursus bekijken

Oefeninstructies

  • Werk de definitie van cut_by_quantile() bij zodat het argument na.rm standaard FALSE is.
  • Verwijder het argument na.rm uit de aanroep van cut_by_quantile().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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]"
)
Code bewerken en uitvoeren