R体育分析实操:如何将同一球员的多支球队信息合并为单行
R语言球员数据聚合实现方案
你可以直接通过dplyr的分组聚合能力实现需求,无需单独用mutate修改列,具体实现如下:
前置依赖
首先安装并加载dplyr包:
install.packages("dplyr") library(dplyr)
核心处理代码
假设你的原始数据框名为df,执行以下代码即可得到目标结果:
result <- df %>% # 按球员姓名分组 group_by(name) %>% summarise( # 球队列去重后用逗号加空格拼接 team = paste(unique(team), collapse = ", "), # 进球数求和,空值自动跳过 goals = sum(goals, na.rm = TRUE) ) %>% ungroup()
逻辑说明
group_by(name)会将数据按球员姓名拆分成分组,后续计算都会在每个球员的独立数据范围内执行unique(team)用于提取每个球员所有不重复的所属球队paste(..., collapse = ", ")会把多个球队值拼接为单个字符串,分隔符和你预期的格式一致sum(goals, na.rm = TRUE)对同一球员的所有进球数求和,na.rm = TRUE可以避免存在空值时计算结果出错
你提供的样例数据执行上述代码后,输出结果和你给出的预期样式完全匹配。
内容的提问来源于stack exchange,提问作者Brad
相关产品推荐
相关产品推荐

