计算 R 中列的分位数到子集

RTD*_*RTD 5 r

我有一个具有以下结构的数据集:

Name=c("a","b","c")
Amount_Spent=c(386407,213918,212006)
Run Code Online (Sandbox Code Playgroud)

我想要做的是计算Amount_Spent每个名称属于哪个四分位数,并将值分配给一个新变量(列)Quantiles。我无法使用任何应用功能来获得此结果,有人可以帮忙吗?

提前致谢,拉乌尔

use*_*650 5

您可以使用cut和来执行此操作quantile

# some data
df <- data.frame(name=letters , am.spent = rnorm(26))

# divide df$am.spent 
df$qnt<- cut(df$am.spent , breaks=quantile(df$am.spent),
                                    labels=1:4, include.lowest=TRUE)

 # check ranges
 tapply(df$am.spent , df$qnt , range)
Run Code Online (Sandbox Code Playgroud)

首先得到quantile 分位数(df$am.spent)

#        0%        25%        50%        75%       100% 
#-3.5888426 -0.6879445 -0.1461107  0.5835165  1.2030989 
Run Code Online (Sandbox Code Playgroud)


然后使用cut在指定的切割点处划分 df$am.spent - 我们在分位数的值处进行切割。这是用breaks参数指定的