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

如何使用dplyr按州分组客户数据并计算客户占比?

按州分组客户数据并计算占比(使用dplyr)

核心实现思路

通过dplyr的链式操作,依次完成分组→计数→计算占比三个步骤即可达成需求:

  • 用group_by(state)按州对客户数据分组
  • 用summarise()统计每个州的客户总数
  • 用mutate()结合sum()计算单州客户数占总客户数的百分比

你的代码问题分析

你提供的代码存在命名冲突问题:summarise(state = n())将计数结果命名为state,会直接覆盖原有的州名列,导致后续计算和数据读取逻辑混乱,需要把计数列改为其他名称,比如customer_count。

修正后的代码

# 先确保加载dplyr包
library(dplyr)

# 按州分组、计数并计算占比
colsolarestates <- ColSolare %>%
  group_by(state) %>%
  summarise(customer_count = n()) %>% # 命名计数列,避免覆盖原state字段
  mutate(percent = (customer_count / sum(customer_count)) * 100) # 计算占比,sum(customer_count)取总客户数

拓展用法(保留原数据字段)

如果需要在原数据集基础上直接添加占比列,而非生成仅含分组统计的新数据,可以用以下写法:

ColSolare_with_percent <- ColSolare %>%
  group_by(state) %>%
  mutate(state_customer_count = n()) %>% # 标记每条数据所属州的客户总数
  ungroup() %>% # 取消分组,确保sum计算的是全局总客户数
  mutate(percent = (state_customer_count / sum(state_customer_count)) * 100)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:50:25