查看DF,查找包含两个列字符串的相反匹配的行

时间:2017-11-20 14:53:26

标签: r dataframe string-matching

使用大量篮球决赛得分的大数据集,我只关注两支球队互相比赛两次的情况。

df <- data.frame(Home = c("Air Force", "Air Force", "Air Force", "BYU"), 
             HomeScore = c(79, 72, 88, 82), 
             Away = c("BYU", "Utah", "Wyoming", "Air Force"),
             AwayScore = c(83, 74, 92, 72),
             HomeMargin = c(-4, -2, -4, 10),
             HomeWin = c(0, 0, 0, 1))

数据全部从单独的数据库导入。我的最终目标是创建一个最终专栏,“迭代”,表示主队是否在路上赢得同一场比赛,仅用于已经发生两次的比赛(一次回家,一次在路上)。

使用上面的例子,空军一次在家里和一次在路上玩BYU。他们输掉了主场比赛但赢得了比赛。第1行在“迭代”下包含“1”,第2行和第3行包含“NA”,第4行包含“0”。

1 个答案:

答案 0 :(得分:0)

你走了!

df3 <- left_join(df, 
                 select(df, Home, Away, iteration = HomeWin), 
                     by = c("Home" = "Away", "Away" = "Home")
                 )

你可以将它加入对抗自身,匹配Home和Away,Away和Home,然后只引入HomeWin。

我添加了select(df, Home, Away, iteration = HomeWin),因为我想过滤掉那个df。您可以将其另存为其他内容,然后根据需要在连接中引用它。

希望这有帮助!