Подсчет побед и средних шансов на победу в R - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь создать фрейм данных в R, который позволит мне просматривать средние шансы на домашние ставки для каждой команды, а также количество домашних побед в каждом сезоне.

Есть 6 840 записей внабор данных, представляющий 18-летний сезон футбола Премьер-лиги.Это значит, что на каждый сезон приходится 380 записей.

Позвольте показать вам пример.Это резко сокращенный пример, но он дает вам достаточно хорошее представление о том, чего я пытаюсь достичь.

Ключ: FTHG (домашние голы на полный рабочий день), FTAG (голы на полный рабочий день), FTR (очный результат), HWO (шансы на победу дома), AHWO (средние шансы на победу дома), W (количество выигрышей)

matchData:

       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 записей.

Я заранее благодарен всем, кто может мне помочь с этим.

1 Ответ

0 голосов
/ 16 декабря 2018
library(dplyr)
homeWinOdds <- matchData %>% 
  group_by(Season, HomeTeam) %>% 
  summarize(W    = sum(FTR == "H"), 
            AHWO = mean(HWO)) %>%
  ungroup()
...