开始使用免费开始使用

分类默认值

在对数值向量进行分箱时,您需要考虑当某个值正好落在边界上会怎样处理。可以把它归入较低区间的类别,或归入较高区间的类别。也就是说,您可以选择区间包含上边界而不包含下边界(数学上称为"左开右闭",即 (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]")
编辑并运行代码