【问题标题】:Count Wins and Average Home Win Odds in R在 R 中计算胜利和平均主场胜利赔率
【发布时间】:2018-12-15 19:43:57
【问题描述】:

我正在尝试在 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 数据框总结成一个新的:

homeWinOdds:

       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 场主场比赛,因此这些比赛的主场赔率将取平均值。

总结:

  • 计算球队在一个赛季中的主场胜利次数
  • 整个赛季的平均主场获胜赔率(仅适用于球队的主场比赛)
  • 显示为单独的记录 - 在实际数据集中,每个赛季有 20 支球队,因此每个赛季将有 20 条记录。

我提前感谢任何可以帮助我的人。

【问题讨论】:

  • 您能提供易于粘贴的数据吗?您可以使用例如dput()。请参阅here 了解更多信息。

标签: r sum grouping average frame


【解决方案1】:
library(dplyr)
homeWinOdds <- matchData %>% 
  group_by(Season, HomeTeam) %>% 
  summarize(W    = sum(FTR == "H"), 
            AHWO = mean(HWO)) %>%
  ungroup()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多