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

如何基于game_scores取值从tempo DataFrame指定索引获取对应数据

问题解决:根据比赛场次匹配对应节奏值

现有DataFrame结构

game_scores

Team     possessions    game_num
Duke     65             1
UNC      70             2

tempo

Team     g0_tempo     g1_tempo
Duke     60           63
UNC      64           65

需求目标

根据game_scores里的球队和场次,匹配tempo中对应球队第N场比赛前的节奏值:比如Duke的game_num是1,对应取g0_tempo的60;UNC的game_num是2,对应取g1_tempo的65,逻辑等价于tempo[球队匹配行, 列位置=game_num](示例中对应tempo[1,1])。

原代码问题分析

你提供的代码存在几个问题:

  • 变量名不统一:原DataFrame名为game_scores,代码里写成了game_score;tempo中没有tempo列,只有g0_tempo、g1_tempo这类命名的列
  • 索引逻辑错误:直接用向量匹配行索引会导致维度不匹配,且未处理场次与节奏列的对应关系(game_num为1对应g0_tempo,需要做game_num-1的转换)
  • 无需使用mean(),此处只需提取单个匹配值

修正后的实现方案

方法1:基础索引匹配(原生R)

通过遍历每行数据,匹配球队并构造目标列名取值:

# 为game_scores新增tempo_adj列
game_scores$tempo_adj <- mapply(function(team, gn) {
  # 定位对应球队的行
  team_row <- tempo[tempo$Team == team, ]
  # 构造目标节奏列名:g(gn-1)_tempo
  target_col <- paste0("g", gn - 1, "_tempo")
  # 返回对应值
  team_row[[target_col]]
}, game_scores$Team, game_scores$game_num)

运行后game_scores的结果:

Team     possessions    game_num    tempo_adj
Duke     65             1           60
UNC      70             2           65

方法2:数据重塑+合并(tidyverse风格)

如果使用tidyverse工具包,可先将tempo转成长格式再合并,更适合批量处理:

library(tidyverse)

# 将tempo从宽格式转成长格式,提取场次索引
tempo_long <- tempo %>%
  pivot_longer(cols = starts_with("g"), 
               names_to = "game_index", 
               values_to = "tempo_value") %>%
  mutate(game_index = as.integer(str_extract(game_index, "\\d+")))

# 合并数据,匹配球队且场次索引=game_num-1
game_scores <- game_scores %>%
  left_join(tempo_long, by = c("Team" = "Team", "game_num" = "game_index")) %>%
  rename(tempo_adj = tempo_value)

原代码逻辑修正版

如果要基于你最初的代码逻辑调整,修正后代码如下:

game_scores$tempo_adj <- mapply(function(team, gn) {
  # 找到对应球队的行索引
  row_idx <- which(tempo$Team == team)
  # 计算目标列索引:gn-1 + 2(第1列是Team,g0_tempo为第2列)
  col_idx <- (gn - 1) + 2
  # 返回对应位置的值
  tempo[row_idx, col_idx]
}, game_scores$Team, game_scores$game_num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:42:50