分类默认值
在对数值向量进行分箱时,您需要考虑当某个值正好落在边界上会怎样处理。可以把它归入较低区间的类别,或归入较高区间的类别。也就是说,您可以选择区间包含上边界而不包含下边界(数学上称为"左开右闭",即 (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参数。 - 从对
cut_by_quantile()的调用中移除interval_type参数。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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]")