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

R语言求助:多数据集下NHL球员5年统计指标均值计算

批量计算NHL球员5年统计数据均值并合并到目标数据集

核心思路

不用逐个处理球员,用tidyverse工具链就能高效完成批量分组计算+合并,核心步骤是:合并多年度数据 → 按球员分组计算均值 → 与21-22赛季数据匹配合并。

具体操作步骤

1. 加载必要工具包

先确保安装并加载tidyverse(包含dplyr、tidyr等工具,完美适配pipe操作):

# 未安装的话先执行安装命令
# install.packages("tidyverse")
library(tidyverse)

2. 合并多年度数据集

假设你导入的五个年度数据集分别命名为df_1718、df_1819、df_1920、df_2021、df_2122,将它们合并为一个完整数据集,同时标记赛季(可选,用于数据验证):

# 合并所有赛季数据,添加season列区分来源
all_years_data <- bind_rows(
  "17-18" = df_1718,
  "18-19" = df_1819,
  "19-20" = df_1920,
  "20-21" = df_2021,
  "21-22" = df_2122,
  .id = "season"
)

3. 按球员分组计算5年均值

关键是要有唯一的球员标识列(比如player_id,尽量不用姓名避免重名问题),然后对15个统计列批量计算均值:

# 假设球员唯一标识为player_id,替换括号内的列名为你实际的15个统计数据列
player_5year_avg <- all_years_data %>%
  group_by(player_id) %>% # 按球员分组
  summarize(
    across(c(goals, assists, points, hits, blocked_shots, ...), # 替换为你的统计列名
           ~mean(.x, na.rm = TRUE), # 计算均值,忽略缺失值
           .names = "avg_{.col}") # 自动给均值列命名为「avg_原列名」格式
  )

4. 合并均值到21-22赛季数据集

将计算好的均值列匹配合并到目标数据集df_2122(即你说的'21-22 Player Data'):

# 按player_id匹配合并,保留21-22赛季的所有原始数据
df_2122_with_avg <- df_2122 %>%
  left_join(player_5year_avg, by = "player_id")

关键注意事项

  • 球员唯一标识:必须用不重复的ID(比如NHL官方球员ID),避免同名球员的数据被错误合并;若只有姓名,先检查重名情况,必要时结合球队信息辅助区分。
  • 缺失值处理:na.rm=TRUE能避免因球员某赛季数据缺失导致均值为NA,根据需求可调整。
  • 列名一致性:确保五个年度数据集中的统计列名完全一致,否则across无法批量处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:18:28