了解spender';占支出总额前90%的

了解spender';占支出总额前90%的,r,percentile,R,Percentile,我在R中有一个数据框,有两列-名称和花费金额。我想找出占消费总额前90%的消费者名单 我的数据帧的简短示例(实际上它有数千行)- DF一种方法是按降序排列数据并选择行,直到达到90% perc <- 0.9 DF <- DF[order(DF$Total_Spent, decreasing = TRUE),] DF1 <- DF[cumsum(DF$Total_Spent) <= sum(DF$Total_Spent) * perc, ] DF1 # Names T

我在R中有一个数据框,有两列-名称和花费金额。我想找出占消费总额前90%的消费者名单

我的数据帧的简短示例(实际上它有数千行)-


DF一种方法是按降序排列数据并选择行,直到达到90%

perc <- 0.9
DF <- DF[order(DF$Total_Spent, decreasing = TRUE),]
DF1 <- DF[cumsum(DF$Total_Spent) <= sum(DF$Total_Spent) * perc, ]
DF1

#   Names Total_Spent
#1      a    129777.7
#3      c    124906.6
#6      f    121709.6
#8      h    120235.7
#9      i    120053.7
#10     j    119582.8
#11     k    113732.9

perc喜欢这项工作吗

DF <- data.frame(Names = letters[1:13], Total_Spent = c(129777.73,1265.27,124906.61,12493.39,130.68,121709.55,12476.43, 120235.74,120053.71,119582.76,113732.94,112417.77,1000.71))

x<-quantile(DF[,2], 0.9)

DF_90<-which(DF[,2]>=x)
DF[,1][DF_90]

工作得很好。我改变了代码的格式,使之与dplyr相匹配,因为我已经习惯了,但逻辑是相同的。非常感谢!!
DF <- data.frame(Names = letters[1:13], Total_Spent = c(129777.73,1265.27,124906.61,12493.39,130.68,121709.55,12476.43, 120235.74,120053.71,119582.76,113732.94,112417.77,1000.71))

x<-quantile(DF[,2], 0.9)

DF_90<-which(DF[,2]>=x)
DF[,1][DF_90]
[1] a c