我有一个体育数据的 R 数据框,如下所示:
HomeTeam AwayTeam HomeWin Draw AwayWin
1 Barcelona Madrid 2.30 3.28 3.27
2 Madrid Liverpool 8.79 5.12 1.36
3 Liverpool Barcelona 3.41 3.34 2.21
4 Madrid Barcelona 1.38 5.08 7.92
5 Liverpool Madrid 1.53 4.07 6.83
6 Barcelona Liverpool 3.35 3.62 2.12
因此将主队和客队分开一栏,然后将主队、平局和客队获胜赔率分成 3 栏。
我想创建一个新的数据框,显示每支球队的平均获胜赔率。所以我想计算每支球队的获胜赔率(无论是主场还是客场)并计算平均值。例如,巴塞罗那的平均获胜赔率是 (2.30 + 2.21 + 7.92 + 3.35) / 4 = 3.95。我想要制作的表格如下所示:
Team AverageWinOdds
1 Barcelona 3.95
2 Madrid 5.07
3 Liverpool 2.11
我该怎么做?
(肯定有更聪明的事情。)
在基地,我们可以做
lapply(list(X[c("HomeTeam", "HomeWin")], X[c("AwayTeam", "AwayWin")]),
setNames, c("team", "win")) |> do.call(what=rbind) |>
aggregate(win~team, data = _, mean)
给予
team win
1 Barcelona 3.9450
2 Liverpool 2.1050
3 Madrid 5.0675