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

如何在R中对相似字符串行分组并统计队伍总数

R实现相似球队分组统计+数据透视表方案

依赖包准备

首先需要安装加载tidyverse套件,包含数据处理、字符串处理、透视表所需的所有工具:

# 首次运行先执行安装
# install.packages("tidyverse")
library(tidyverse)

步骤1:导入数据

以下为示例数据构造代码,实际使用时可以替换为read.csv()/read_excel()读取你自己的本地表格:

df <- tibble(
  联赛 = c("Summer", "Winter", "Summer"),
  球队 = c("Rangers1-North", "Rangers2", "Ranger1-South"),
  教练 = c("Tiffany", "James", "Tiffany")
)

步骤2:提取统一球队分组标识

针对示例中「相同主体球队用-加后缀区分」的命名规则,先提取公共前缀作为统一分组名,你可以根据自己的实际命名规则调整匹配逻辑:

df_clean <- df %>%
  mutate(
    # 去掉-及之后的所有内容,得到统一的球队组名
    球队组 = str_remove(球队, "-.*$") %>%
    # 可选:修正小拼写差异,比如示例中Ranger1和Rangers1的单复数拼写误差
    str_replace("^Ranger1$", "Rangers1")
  )

如果你的球队相似判定规则更复杂(无统一分隔符、需要按模糊相似度匹配),可以安装stringdist包,基于字符串相似度阈值合并球队

步骤3:分组统计球队数量

按联赛、教练、统一后的球队组分组,统计每个组的球队总数:

df_count <- df_clean %>%
  group_by(联赛, 教练, 球队组) %>%
  summarise(球队总数 = n(), .groups = "drop")

步骤4:生成数据透视表

可以根据需求调整透视表的行列,以下示例行为教练+球队组,列为联赛,值为对应球队总数:

pivot_result <- df_count %>%
  pivot_wider(
    names_from = 联赛,
    values_from = 球队总数,
    values_fill = 0 # 无数据的单元格默认填充0
  )

输出结果示例:

教练球队组SummerWinter
TiffanyRangers120
JamesRangers201

可调参数说明

  • 调整pivot_wider的names_from参数可以修改透视表的列维度,比如改为教练就可以实现列展示不同教练
  • 调整group_by的字段顺序可以修改统计的聚合维度
  • 字符串匹配规则可以根据你实际的球队命名规则自定义正则表达式即可

内容的提问来源于stack exchange,提问作者Abdul-Aziz Muhammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:09:03