Я работаю с некоторыми данными матчей и хотел бы выяснить разницу в головах между командами для каждого матча.
Я могу получить разницу очков для второй команды (в столбце diff), но не могу понять, как рассчитать разницу мячей для команды first .Это должно быть обратно пропорционально разнице мячей для второй команды (т. Е. В примере набора данных «Growlers» должен иметь 1
в столбце diff, а «Strike» должен иметь -1
).
library(dplyr)
dat <-
structure(
list(
Match = c(1, 1, 2, 2, 3, 3),
Team = c("Growlers",
"Rollers", "Strike", "Bandits", "Cats", "Blues"),
Goals = c(1,0, 0, 1, 1, 2)
),
row.names = c(NA,-6L),
groups = structure(
list(
Match = c(895825, 895826, 895827),
.rows = list(1:2, 3:4,
5:6)
),
row.names = c(NA,-3L),
class = c("tbl_df", "tbl",
"data.frame"),
.drop = TRUE
),
class = c("grouped_df", "tbl_df",
"tbl", "data.frame")
)
dat %>%
group_by(Match) %>%
mutate(diff = Goals - lag(Goals))
#> # A tibble: 6 x 4
#> # Groups: Match [3]
#> Match Team Goals diff
#> <dbl> <chr> <dbl> <dbl>
#> 1 1 Growlers 1 NA
#> 2 1 Rollers 0 -1
#> 3 2 Strike 0 NA
#> 4 2 Bandits 1 1
#> 5 3 Cats 1 NA
#> 6 3 Blues 2 1
Создано в 2019-02-26 с помощью пакета prex (v0.2.0).