首页 > 解决方案 > 如何按分位数对数据进行分组

问题描述

如果我有一个客户购物费的data.frame,我需要将客户按分位数分成4组,我应该如何编写R代码?

现在我只得到这个...

quantile(cus.df$Fee, probs=seq(from=0,to=1,by=0.2))

标签: r

解决方案


如果您只想创建一个新变量,其中每一行根据 1 列中的值获得 1、2、3 或 4,您可以执行以下操作:

library(dplyr)

mtcars %>% 
  mutate(quantilegroup = ntile(qsec, 4)) %>% 
  head(6)

   mpg cyl disp  hp drat    wt  qsec vs am gear carb quantilegroup
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4             1
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4             2
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1             3
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1             4
5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2             2
6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1             4

推荐阅读