當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。