1

私はいくつかの試合データを扱っており、各試合の各チームのゴールの差を計算したいと考えています。

2 番目のチームの得点差 (差分列) を取得できますが、 1番目のチームの得失点差を計算する方法がわかりません。これは、2 番目のチームのゴール差の逆数である必要があります (つまり、サンプル データ セットでは、"Growlers" は1diff 列に、"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

reprex パッケージ(v0.2.0)によって 2019-02-26 に作成されました。

4

1 に答える 1