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

修改R语言dplyr分组代码,实现CustomersInGroup列求和统计

解决方案

要实现按Area和Customer_Age_Group分组对CustomersInGroup求和,同时保留所有可能的分组组合(无数据的组填充0),可以通过生成全分组组合 + 左连接聚合结果 + 填充缺失值的方式实现,具体代码如下:

示例代码

library(dplyr)
library(tidyr)

# 假设你的数据集名为df
full_group_summary <- df %>%
  # 生成Area和Customer_Age_Group的所有可能组合
  expand(Area, Customer_Age_Group) %>%
  # 左连接原数据的分组求和结果
  left_join(
    df %>%
      group_by(Area, Customer_Age_Group) %>%
      summarise(Total_Customers = sum(CustomersInGroup, na.rm = TRUE), .groups = "drop"),
    by = c("Area", "Customer_Age_Group")
  ) %>%
  # 将无数据分组的求和值替换为0
  mutate(Total_Customers = replace_na(Total_Customers, 0))

代码说明

  • expand(Area, Customer_Age_Group):遍历两个分组变量的所有唯一值,生成完整的分组组合列表,确保不会遗漏任何潜在分组。
  • sum(CustomersInGroup, na.rm = TRUE):对每组的CustomersInGroup求和,na.rm = TRUE用于忽略原数据中该列的缺失值,避免求和结果为NA。
  • left_join(...):将全分组组合与实际聚合结果关联,原数据中不存在的分组会在Total_Customers列生成NA。
  • replace_na(Total_Customers, 0):把NA值替换为0,满足无数据组填充0的需求。

目标输出示例

执行上述代码后,会得到类似如下的结果:

AreaCustomer_Age_GroupTotal_Customers
North18-24150
North25-340
South18-24200
South25-34300

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:01:34