首页 > 解决方案 > 从r中同一组中的其他行获取值

问题描述

我有以下数据集:

date_nba <- tibble::tribble(
   ~idGame, ~slugTeam, ~slugOpponent, ~drebTeam, ~orebTeam,
  20900001,     "NOP",         "TOR",        37,        16,
  20900001,     "TOR",         "NOP",        41,        16,
  20900002,     "LAL",         "LAC",        32,         9,
  20900002,     "LAC",         "LAL",        34,        11
  )

我想创建一个名为drebOpp的列,它是来自同一 idGame 中其他 slugTeam 的 drebTeam。所以想要的结果是:

tibble::tribble(
   ~idGame, ~slugTeam, ~slugOpponent, ~drebTeam, ~orebTeam, ~drebOpp,
  20900001,     "NOP",         "TOR",        37,        16,       41,
  20900001,     "TOR",         "NOP",        41,        16,       37,
  20900002,     "LAL",         "LAC",        32,         9,       34,
  20900002,     "LAC",         "LAL",        34,        11,       32
  )

我知道使用 group_by 和 mutate 可能有一个简单的解决方案,但我似乎无法在任何地方找到它。任何帮助,将不胜感激!

标签: r

解决方案


我们可以做一个小组match

library(dplyr)
date_nba %>% 
  group_by(idGame) %>% 
  mutate(drebOpp = drebTeam[match(slugTeam, slugOpponent)])

推荐阅读