You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于dplyr计算PPG维度下累计销售占比及对应产品数量

搞定帕累托法则验证的两步需求

嘿,我来帮你完成这两个验证帕累托法则的需求!假设你已经有了按PPG、产品维度统计,且算出累计销售额(比如列名叫cum_sales)的DataFrame,下面分步骤实现:

一、基于累计销售额计算销售占比

首先我们需要给每个PPG组计算总销售额,再用累计销售额除以总销售额得到累计占比。这里要确保每个PPG下的产品是按销售额从高到低排序的(毕竟帕累托法则看的是top贡献的产品),如果之前没排序,记得加上排序步骤:

library(dplyr)

# 假设你的数据框叫sales_df,包含PPG、product、sales、cum_sales列
sales_df <- sales_df %>%
  group_by(PPG) %>%
  # 按销售额降序排列,保证高贡献产品在前
  arrange(desc(sales), .by_group = TRUE) %>%
  # 计算当前PPG的总销售额
  mutate(total_sales = sum(sales),
         # 计算累计销售占比,保留2位小数更直观
         cum_sales_pct = round(cum_sales / total_sales * 100, 2)) %>%
  ungroup()

这样你就会得到一个新列cum_sales_pct,显示每个产品及之前所有产品的累计销售额占该PPG总销售额的百分比。

二、统计贡献特定销售占比的产品数量

接下来我们要统计每个PPG中,累计贡献达到目标占比(比如75%)所需的最少产品数量。核心思路是:在每个PPG组里,找到第一个累计占比≥目标值的行,该行的行号就是我们要的产品数量:

target_pct <- 75  # 可以替换成你需要的任意占比,比如80%

product_count_result <- sales_df %>%
  group_by(PPG) %>%
  # 筛选出累计占比首次达到或超过目标值的行
  filter(cum_sales_pct >= target_pct) %>%
  # 只取第一个符合条件的行(对应最少的产品数量)
  slice(1) %>%
  # 提取产品数量(因为已经排序,行号就是累计的产品数)
  mutate(product_count = row_number()) %>%
  # 保留关键结果列
  select(PPG, product_count, achieved_pct = cum_sales_pct) %>%
  ungroup()

额外补充:从原始数据一步到位的流程

如果你还没计算累计销售额,也可以把整个流程合并起来,从原始销售数据直接得到结果:

# 假设原始数据叫raw_sales,包含PPG、product、sales列
target_pct <- 75

full_result <- raw_sales %>%
  # 先按PPG和产品汇总销售额
  group_by(PPG, product) %>%
  summarise(sales = sum(sales), .groups = "drop_last") %>%
  # 按销售额降序排列
  arrange(desc(sales), .by_group = TRUE) %>%
  # 计算累计销售额、总销售额、累计占比
  mutate(cum_sales = cumsum(sales),
         total_sales = sum(sales),
         cum_sales_pct = round(cum_sales / total_sales * 100, 2)) %>%
  # 统计达到目标占比的产品数量
  group_by(PPG) %>%
  filter(cum_sales_pct >= target_pct) %>%
  slice(1) %>%
  mutate(product_count = row_number()) %>%
  select(PPG, product_count, achieved_pct = cum_sales_pct) %>%
  ungroup()

这样出来的结果里,每个PPG对应的product_count就是贡献至少75%销售额所需的产品数量啦!

内容的提问来源于stack exchange,提问作者av abhishiek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:48:57