qcut

语法

qcut(X, q, [labels],[dropDuplicates=false]

详情

根据元素在数值向量中的排序位置,确定其所属的分位区间。例如,将 1000 个数值按分位数划分为 10 个区间,返回每个元素所属的分位区间。

参数

X 一个数值向量。

q 整型标量或浮点型向量。

  • 当为整型标量时,表示分位区间的数量(如 10 表示十分位,4 表示四分位)。
  • 当为浮点型向量时,表示分位点,至少包含两个元素,且取值范围为 [0, 1]。

labels 可选参数,一个向量,代表每个分位区间的标签。

  • 默认为 NULL,函数返回整型向量,代表每个元素对应的分位区间序号。
  • 如果 q 是标量,labels 的长度需要等于 q
  • 如果 q 是向量,labels 的长度需要等于 q 向量长度 -1。

dropDuplicates 布尔值,是否删除重复的区间边界。

  • 默认为 false,表示存在重复的区间边界时报错.
  • 如果为 true,表示删除重复的区间边界。

返回值

一个向量,代表每个元素所属的分位区间。

例子

// 将数据划分为 4 个分位区间
qcut([1,2,3,4,5,6,7,8,9,10], 4)
// 输出:[0 0 0 1 1 2 2 3 3 3]

// 使用自定义分位点进行划分:0–30%、30–70%、70–100%
qcut([1,2,3,4,5,6,7,8,9,10], [0, 0.3, 0.7, 1.0])
// 输出:[0 0 0 1 1 1 1 2 2 2]

// 将数据划分为 4 个分位区间,并使用自定义标签作为区间标识
qcut([1,2,3,4,5,6,7,8,9,10], 4, ["Q1", "Q2", "Q3", "Q4"])
// 输出:[Q1	Q1 Q1 Q2 Q2	Q3 Q3 Q4 Q4	Q4]

// 启用 dropDuplicates,自动丢弃重复的区间边界
qcut(X=[1, 1, 1, 1, 2, 3],q=4,dropDuplicates=true)
// 输出:[0 0 0 0 2 2]