首页 > 解决方案 > r 创建三分位数,每组中的 n 相同并显示断点

问题描述

创建三分位数对我来说有点挑战性。

当我使用 cut 时,断点非常均匀,但组却不是。

使用 cut2 时,组变得更加均匀,但仍然不是真正的三分位数。

ntile 给出了真正的三分位数,但我看不到断点。

DF <- data.frame(var = rnorm(1000, 50, 15))

如何创建 3 个组,每个组有 ~333 个并显示断点?

我会很高兴得到帮助!

标签: r

解决方案


我想你正在寻找quantile

quantile(DF$var, c(0, 1/3, 2/3, 1))
#>         0%  33.33333%  66.66667%       100% 
#>  -6.379706  44.044300  56.866305 101.082961 

所以你可以这样做:

groups <- cut(DF$var, quantile(DF$var, c(0, 1/3, 2/3, 1)), include.lowest = TRUE)
table(groups)
#> groups
#> [-6.38,44]  (44,56.9] (56.9,101] 
#>        334        333        333 

推荐阅读