ПочатиПочніть безкоштовно

Категоріальні значення за замовчуванням

Коли ви розбиваєте числовий вектор на інтервали, потрібно зважати на те, що буде, якщо значення потрапляє точно на межу. Ви можете віднести це значення до категорії нижчого інтервалу або вищого. Тобто ви можете вибрати інтервали, які включають значення на верхній межі, але не на нижній (у математичній термінології «відкритий ліворуч, замкнений праворуч», або (lo, hi]). Або можна зробити навпаки («замкнений ліворуч, відкритий праворуч», або [lo, hi)). cut_by_quantile() має дозволяти обидва варіанти.

Шаблон для категоріальних значень за замовчуванням:

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

Вільна підказка: у консолі введіть head(rank), щоб побачити початок визначення rank(), і зверніть увагу на аргумент ties.method.

Ця вправа є частиною курсу

Вступ до написання функцій в R

Переглянути курс

Інструкції до вправи

  • Оновіть сигнатуру cut_by_quantile(), щоб аргумент interval_type міг бути "(lo, hi]" або "[lo, hi)". Зверніть увагу на пробіл після кожної коми.
  • Оновіть тіло cut_by_quantile(), щоб узгодити аргумент interval_type.
  • Приберіть аргумент interval_type з виклику cut_by_quantile().

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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]")
Редагувати та запускати код