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

Look through DF, find rows that contain opposite matches of two column strings

使用大学篮球决赛比分的大型数据集,我只寻找两支球队相互交手两次的情况。

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))

数据全部从单独的数据库导入。我的最终目标是创建一个最后一列,"iteration" 表示主队是否在客场赢得了同一场比赛,仅适用于发生两次的比赛(一次主场和一次客场)。

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

给你!

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

你可以左加入它自己,匹配主客场,客场和主场,然后只带主场赢。

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

希望对您有所帮助!