当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dplyr ntile 将数值向量分为 n 组


ntile() 是一种非常粗略的排名,它将输入向量分成n 桶。如果 length(x) 不是 n 的整数倍,则存储桶的大小将相差最多一倍,较大的存储桶先出现。

与其他排名函数不同,ntile() 忽略关系:即使 x 的相同值最终出现在不同的存储桶中,它也会创建大小均匀的存储桶。

用法

ntile(x = row_number(), n)

参数

x

用于排名的向量

默认情况下,最小值将获得最小的排名。使用 desc() 反转方向,使最大值获得最小的排名。

缺失值将被赋予排名 NA 。如果您想分别将它们视为最大值或最小值,请使用coalesce(x, Inf)coalesce(x, -Inf)

要一次按多列排名,请提供 DataFrame 。

n

要分桶的组数

也可以看看

其他排名函数:percent_rank()row_number()

例子

x <- c(5, 1, 3, 2, 2, NA)
ntile(x, 2)
#> [1]  2  1  2  1  1 NA
ntile(x, 4)
#> [1]  4  1  3  1  2 NA

# If the bucket sizes are uneven, the larger buckets come first
ntile(1:8, 3)
#> [1] 1 1 1 2 2 2 3 3

# Ties are ignored
ntile(rep(1, 8), 3)
#> [1] 1 1 1 2 2 2 3 3
源代码:R/rank.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Bucket a numeric vector into n groups。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。