R には、スポーツ チームとその試合のスターティング ラインナップに関するデータがたくさんあります。私のデータセットの例は次のとおりです。
matchdata <- data.frame(match_id = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2), player_name = c("andrew", "david", "james", "steve", "tim", "dan",
"john", "phil", "matthew", "simon", "ben", "brian", "evan", "tony", "will",
"alister", "archie", "paul", "peter", "warren"), played_for = c("team a", "team a",
"team a", "team a", "team a", "team b", "team b", "team b", "team b", "team b",
"team c", "team c", "team c", "team c", "team c", "team d", "team d", "team d",
"team d", "team d"), played_against = c("team b", "team b", "team b", "team b",
"team b", "team a", "team a", "team a", "team a", "team a", "team d", "team d",
"team d", "team d", "team d", "team c", "team c", "team c", "team c", "team c"),
score_for = c(2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0),
score_against = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3))
私が達成しようとしているのは、各試合日の「プレイヤー対プレイヤー」の対戦ごとに個別のエントリを作成することです。出力を次のようにしたい:
output <- data.frame(match_id = 1, player_name = "andrew", played_against = c("dan",
"john", "phil", "matthew", "simon"), score_for = 2, score_against = 1)
そのため、その日に各選手が各チームと対戦するのではなく、1 対 1 でパフォーマンスを分析して比較することができます。
編集: 私は選手を相手チームの選手と比較したいだけです. また、その MATCH_ID で対戦したチームのプレーヤーとプレーヤーを比較するだけで済みます。したがって、この例では、各プレイヤーには 5 行のエントリがあります (特定の対戦で対戦したチームの各プレイヤーに対して 1 行)。
これを達成するための最良の方法を教えてください。reshape または Melt を使用した経験がありますが、このインスタンスで必要なものを生成することはできません。
私が必要とするものを達成するための最良の方法を誰でもお勧めできますか?