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

R语言中变量值录入格式不一时如何用group_by正确分组统计

解决方案

直接基于原始录入的customer_name字段分组会因为录入格式差异拆分同一客户,需要先对姓名做标准化清洗,再基于清洗后的标准字段执行分组统计即可。

常见录入噪声类型

你当前遇到的姓名差异主要分两类:

  • 大小写格式不统一:同一姓名存在大小写混用的情况
  • 冗余附加信息:录入时附带了身份备注、年份等非姓名核心内容

实现代码

依赖tidyverse生态的dplyr做数据处理、stringr做字符串清洗,代码如下:

library(tidyverse)

customer_grouped <- customer_dataset %>%
  mutate(
    # 统一转小写,消除大小写差异
    customer_name_std = str_to_lower(customer_name),
    # 截断冗余后缀:匹配备注关键词、逗号等分隔符前的内容,保留核心姓名
    # 可根据实际数据里的冗余内容,往匹配规则里追加关键词
    customer_name_std = str_extract(customer_name_std, "^.*?(?= the actor|,|$)"),
    # 去除首尾多余空格,统一转为首字母大写的规范姓名格式
    customer_name_std = str_trim(customer_name_std),
    customer_name_std = str_to_title(customer_name_std)
  ) %>%
  # 基于标准化后的姓名字段分组计数
  group_by(customer_name_std) %>%
  summarise(order_count = n(), .groups = "drop")

效果说明

针对你给出的示例数据,所有存在大小写差异、带后缀备注的条目,清洗后都会被统一归为Will Smith分组,最终统计得到的总订单数为56,不会再出现同一客户被拆分到多个分组的问题。

扩展提示:如果后续数据中出现其他姓名录入差异(比如错别字、昵称、中间名缩写),只需要在mutate清洗步骤中补充对应的字符串处理规则即可,后续分组统计逻辑无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 06:57:30