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

如何在R中按分组和年份分别计算月度销售计数差值

R中计算分组年度7月与6月销量差值的最简方法

方法一:使用tidyverse工具链(推荐,代码简洁易读)

借助dplyr的分组计算能力和日期处理逻辑,通过管道操作就能快速完成需求:

library(dplyr)

result <- mydata %>%
  mutate(
    year = floor(month_id / 100),  # 从month_id提取年份
    month = month_id %% 100        # 从month_id提取月份
  ) %>%
  group_by(MDM_Key, year) %>%
  summarise(
    sale_count = sale_count[month == 7] - sale_count[month == 6],
    .groups = "drop"
  ) %>%
  arrange(MDM_Key, year)

print(result)

方法二:Base R原生实现(无需额外安装包)

如果不想加载第三方包,用原生函数组合也能完成计算:

# 提取年份和月份字段
mydata$year <- floor(mydata$month_id / 100)
mydata$month <- mydata$month_id %% 100

# 分组计算差值并合并结果
result <- do.call(rbind, lapply(split(mydata, list(mydata$MDM_Key, mydata$year)), function(x) {
  data.frame(
    year = unique(x$year),
    MDM_Key = unique(x$MDM_Key),
    sale_count = x$sale_count[x$month == 7] - x$sale_count[x$month == 6]
  )
}))

# 整理行顺序并重置行名
result <- result[order(result$MDM_Key, result$year), ]
rownames(result) <- seq(nrow(result))

print(result)

两种方法都能输出你需要的结果:tidyverse写法更贴合现代R数据处理的语法习惯,可读性更高;base R方法则适合无法安装第三方包的受限环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:44:55