Связано с тем же набором данных из предыдущего поста { ссылка }
Теперь я хочу попробовать сравнить Wins (число) с разницей целей (как Wins, так и Loses), используя оригинал df.
# A tibble: 6 x 19
match_no Date Tm Opp Outcome Time G PP SH S PIM GA PPGA SHGA
<dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 6/4/… NYI WSH W REG 3 0 0 24 4 0 0 0
2 2 6/4/… WSH NYI L REG 0 0 0 29 2 3 0 0
3 3 6/4/… STL VAN W SO 3 1 0 36 6 2 2 0
4 4 6/4/… VAN STL L SO 2 2 0 25 6 3 1 0
5 5 6/4/… COL SJS L REG 2 0 0 30 4 5 0 0
6 6 6/4/… SJS COL W REG 5 0 0 30 4 2 0 0
# … with 5 more variables: PPO <dbl>, PPOA <dbl>, SA <dbl>, OppPIM <dbl>, DIFF <dbl>
Итак, теперь я хочу извлечь: 31 команда (Tm), количество побед (результат) и разница в голах (сумма DIFF) от выигрышей и проигрышей?
Это даст мне разницу в голах только от побед
df %>%
group_by(Tm, Outcome) %>%
summarize(Wins=n(), Goal.Diff=sum(Diff)) %>%
dplyr::filter(Outcome=='W')
И я смогу пройти долгий путь
wins <-df %>%
+ group_by(Tm, Outcome) %>%
+ summarise(Wins=n()) %>%
+ dplyr::filter(Outcome=='W')
> wins_gd <-merge(wins, team_goals, by = "Tm")
Что даст мне то, что я хочу
Tm Outcome Wins GoalsFor GoalsAgainst Difference
1 ANA W 35 199 251 -52
2 ARI W 39 213 223 -10
3 BOS W 49 259 215 44
4 BUF W 33 226 271 -45
5 CAR W 46 245 223 22
6 CBJ W 47 258 232 26
7 CGY W 50 289 227 62
8 CHI W 36 270 292 -22
9 COL W 38 260 246 14
10 DAL W 43 210 202 8
11 DET W 32 227 277 -50
12 EDM W 35 232 274 -42
13 FLA W 36 267 280 -13
14 LAK W 31 202 263 -61
15 MIN W 37 211 237 -26
16 MTL W 44 249 236 13
17 NJD W 31 222 275 -53
18 NSH W 47 240 214 26
19 NYI W 48 228 196 32
20 NYR W 32 227 272 -45
21 OTT W 29 242 302 -60
22 PHI W 37 244 281 -37
23 PIT W 44 273 241 32
24 SJS W 46 289 261 28
25 STL W 45 247 223 24
26 TBL W 62 325 222 103
27 TOR W 46 286 251 35
28 VAN W 35 225 254 -29
29 VEG W 43 249 230 19
30 WPG W 47 272 244 28
31 WSH W 48 278 249 29
но есть ли более быстрый / более эффективный способ?