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

R语言如何将门店日销长表按阶段计算中位数后转为宽表

R语言实现门店分阶段销量中位数统计

实现思路

  • 给原始数据的日期序号匹配对应的10个统计阶段
  • 按门店+阶段分组计算对应区间的销量中位数
  • 将长表转换为要求的宽表结构,无数据的阶段自动填充NA

代码实现(基于tidyverse)

首先加载依赖包:

library(tidyverse)

核心处理逻辑:

result <- 你的原始数据表名 %>%
  # 可选:过滤超出统计周期的异常数据
  filter(Day >= 1 & Day <= 100) %>%
  # 新增阶段列,10天为1个阶段,标签对应要求的字段名
  mutate(period = cut(Day,
                      breaks = seq(0, 100, 10),
                      labels = paste0("m_p", 1:10))) %>%
  # 按门店和阶段分组计算中位数
  group_by(Store, period) %>%
  summarise(median_val = median(Count, na.rm = TRUE), .groups = "drop") %>%
  # 转换为宽表,缺失阶段自动填充NA
  pivot_wider(names_from = period,
              values_from = median_val)

说明

  • cut函数默认左开右闭的区间逻辑,刚好将1-10天划入第一阶段、11-20天划入第二阶段,以此类推完全匹配需求的阶段划分规则
  • na.rm = TRUE参数用于处理阶段内存在单日销量缺失的情况,不需要可直接删除该参数
  • 最终输出的result完全符合要求的宽表结构,无对应阶段数据的字段会自动填充为NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:06:03