2017-11-20 13 views
0

大学バスケットボールの最終得点の大きなデータセットを扱っているので、2つのチームがお互いに2回プレイした場合のみを探している。DFを見て、2つの列の文字列の反対の一致を含む行を見つけよう。

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回演奏しました。彼らはホームマッチアップを失ったが、ロードゲームに勝った。行1は「反復」の下に「1」を含み、行2および3は「NA」を含み、行4は「0」を含む。

答えて

0

ここに行ってください!

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

ホームとアウェイ、アウェーとホームで一致した後、ホームウィンのみを持ち込むことができます。

私はを追加しました。そのdfをフィルタリングしたいからです。あなたはそれを他のものとして保存し、望むならそれを結合で参照することができます。

希望すると便利です。

+0

お互いに対して2つ以上の試合がある状況がある場合、両サイドに1つがある場合、これは混乱することに注意してください。 BYUが自宅で空軍を2回演奏した場合、一度離れてしまうと、これがうまくいかず、別の解決策が必要になります。 –

+0

ありがとう!ちょっと微調整すれば、これはトリックを行うことができました。あなたの懸念について、私はこれが私のデータフレームを奇数回の観測に制限したことに少し気づいています。それは理にかなっているようには見えないが、奇妙なゲームを探しているすべての2065年を通過するつもりはない。 –

+0

あなたは好奇心からどんな微調整をしましたか? –

関連する問題