在 R 中计算胜利和平均主场胜利赔率

Count Wins and Average Home Win Odds in R

我正在尝试在 R 中创建一个数据框,以便查看每支球队的平均主场投注赔率以及每个赛季的主场获胜次数。

数据集中有 6,840 条记录代表 18 个赛季的英超联赛。这意味着每个赛季有 380 个比赛条目。

让我给你举个例子。这是一个大大简化的示例,但它让您对我要实现的目标有足够的了解。

关键:FTHG(全场主场进球数)、FTAG(全场客场进球数)、FTR(全场比赛结果)、HWO(主场获胜赔率)、AHWO(平均主场获胜赔率)、W (获胜次数)

匹配数据:

       Season   | HomeTeam | AwayTeam | FTHG | FTAG | FTR | HWO
-----------------------------------------------------------------
1  |  2017/2018 |  TeamA   |  TeamB   |   2  |   1  |  H  | 1.30
2  |  2017/2018 |  TeamA   |  TeamC   |   1  |   1  |  D  | 1.45
3  |  2017/2018 |  TeamA   |  TeamD   |   1  |   0  |  H  | 2.20
4  |  2017/2018 |  TeamB   |  TeamA   |   4  |   1  |  H  | 1.85
5  |  2017/2018 |  TeamC   |  TeamA   |   1  |   0  |  H  | 1.70
6  |  2017/2018 |  TeamD   |  TeamA   |   2  |   3  |  A  | 3.10
7  |  2016/2017 |  TeamA   |  TeamB   |   2  |   1  |  H  | 1.30
8  |  2016/2017 |  TeamA   |  TeamC   |   0  |   0  |  D  | 1.50
9  |  2016/2017 |  TeamA   |  TeamD   |   1  |   2  |  A  | 1.67
10 |  2016/2017 |  TeamB   |  TeamA   |   3  |   1  |  H  | 1.42
11 |  2016/2017 |  TeamB   |  TeamC   |   2  |   1  |  H  | 1.90
12 |  2016/2017 |  TeamB   |  TeamD   |   5  |   1  |  H  | 1.20
13 |  2016/2017 |  TeamC   |  TeamA   |   1  |   0  |  H  | 2.00
14 |  2016/2017 |  TeamC   |  TeamB   |   3  |   1  |  H  | 1.80

我需要像这样将 matchData 数据框汇总成一个新的:

主场获胜赔率:

       Season   |   Team  | W | AHWO
-------------------------------------
1  |  2017/2018 |  TeamA  | 2 | 1.75
2  |  2017/2018 |  TeamB  | 1 | 1.85
3  |  2017/2018 |  TeamC  | 1 | 1.70
4  |  2017/2018 |  TeamD  | 0 | 3.10
5  |  2016/2017 |  TeamA  | 1 | 1.49
6  |  2016/2017 |  TeamB  | 3 | 1.51
7  |  2016/2017 |  TeamC  | 2 | 1.90
8  |  2016/2017 |  TeamD  | 0 | N/A 

例如,根据上述,TeamB 在 2016/2017 赛季的三个主场比赛中获胜,他们的平均主场赔率(基于 所有 个赛季的主场比赛)为 1.51。

在我的实际数据集中,20 支球队中的每支球队在每个赛季都恰好打了 19 场主场比赛,因此这些比赛的主场赔率将取平均值。

总结:

在此先感谢任何可以帮助我的人。

library(dplyr)
homeWinOdds <- matchData %>% 
  group_by(Season, HomeTeam) %>% 
  summarize(W    = sum(FTR == "H"), 
            AHWO = mean(HWO)) %>%
  ungroup()