ÎncepețiÎncepe gratuit

Valori implicite categorice

Când împarți un vector numeric în intervale, trebuie să ai în vedere ce se întâmplă când o valoare cade exact pe o limită. Poți plasa acea valoare fie în categoria intervalului inferior, fie în cea a intervalului superior. Cu alte cuvinte, poți alege intervale care includ valorile de la limita superioară, dar nu și pe cele de la cea inferioară (în terminologie matematică, „deschis la stânga, închis la dreapta", sau (lo, hi]). Sau poți alege varianta opusă („închis la stânga, deschis la dreapta", sau [lo, hi)). cut_by_quantile() ar trebui să permită ambele variante.

șablonul pentru valorile implicite categorice este:

function(cat_arg = c("choice1", "choice2")) {
  cat_arg <- match.arg(cat_arg)
}

Indiciu gratuit: În consolă, tastează head(rank) pentru a vedea începutul definiției funcției rank() și uită-te la argumentul ties.method.

Acest exercițiu face parte din cursul

Introducere în scrierea funcțiilor în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Actualizează semnătura funcției cut_by_quantile() astfel încât argumentul interval_type să poată fi "(lo, hi]" sau "[lo, hi)". Observă spațiul de după fiecare virgulă.
  • Actualizează corpul funcției cut_by_quantile() pentru a potrivi argumentul interval_type.
  • Elimină argumentul interval_type din apelul la cut_by_quantile().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Set the categories for interval_type to "(lo, hi]" and "[lo, hi)"
cut_by_quantile <- function(x, n = 5, na.rm = FALSE, labels = NULL, 
                            interval_type) {
  # Match the interval_type argument
  ___ <- ___
  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 interval_type argument from the call
cut_by_quantile(n_visits, interval_type = "(lo, hi]")
Editează și rulează codul