R中按分组的分组

问题描述 投票:0回答:1

我有一个与市场,零售商和销售有关的数据框。我需要将每个市场中的零售商分成5个分位数。

示例:

“已分组”

dataframe <- structure(list(Market = c(1, 1, 1, 2, 2, 2), Retailer = c(1, 
2, 3, 4, 5, 6), Sales = c(5, 10, 25, 5, 10, 25), Quantile = c(1, 
2, 3, 1, 2, 3)), class = "data.frame", row.names = c(NA, -6L))
r grouping binning
1个回答
0
投票

一种方法是使用group_by中的ntiledplyr

library(dplyr)
dataframe %>%
  group_by(Market) %>%
  mutate(Quantile = ntile(Sales, 4))
# A tibble: 150 x 4
# Groups:   Market [3]
   Market Retailer Sales Quantile
    <int>    <int> <dbl>    <int>
 1      1        1 16804        1
 2      1        2 80752        4
 3      1        3 38494        2
 4      1        4 32773        2
 5      1        5 60210        3
# … with 145 more rows

数据

set.seed(3)
dataframe <- data.frame(Market = rep(1:3, each = 50), 
                        Retailer = rep(1:50, times = 3), 
                        Sales = round(runif(150,0,100000),0))
© www.soinside.com 2019 - 2024. All rights reserved.