R 运动数据框 - 组合和聚合多列中的数据

问题描述 投票:0回答:1

我有一个体育数据的 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

我该怎么做?

r dataframe dplyr aggregate
1个回答
0
投票

(肯定有更聪明的事情。)

在基地,我们可以做

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
© www.soinside.com 2019 - 2024. All rights reserved.