Категоріальні значення за замовчуванням
Коли ви розбиваєте числовий вектор на інтервали, потрібно зважати на те, що буде, якщо значення потрапляє точно на межу. Ви можете віднести це значення до категорії нижчого інтервалу або вищого. Тобто ви можете вибрати інтервали, які включають значення на верхній межі, але не на нижній (у математичній термінології «відкритий ліворуч, замкнений праворуч», або (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]")