Попытка рассчитать условное скользящее совокупное количество по группам с использованием data.table

Я пытаюсь рассчитать количество дней по группам в течение скользящего пятидневного окна, используя data.table. Пример кода и ввод:

library(data.table)
library(magrittr)

DT <- structure(list(
    id = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2), 
    date = structure(c(16740, 16790, 16791, 16792, 16793, 16794, 16815, 16961, 16962, 16963
  ), class = "Date")), 
  row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"), 
  .Names = c("id", "date")) %>% 
  as.data.table()
id       date
 1:  1 2015-11-01
 2:  1 2015-12-21
 3:  1 2015-12-22
 4:  1 2015-12-23
 5:  1 2015-12-24
 6:  1 2015-12-25
 7:  2 2016-01-15
 8:  2 2016-06-09
 9:  2 2016-06-10
10:  2 2016-06-11

Но я в недоумении, как это сделать. Я знаю, что вы можете сделать кумулятивную сумму по группе, используя

DT[, cumsum := cumsum(.N), by = .(id)]

, но как я могу сделать его скользящей суммой, зависящей от даты? То, что я ищу, это то, где счет идет и ограничивается включением записей за последние пять дней:

      id date       count
   <dbl> <date>     <dbl>
 1     1 2015-11-01     1
 2     1 2015-12-21     1
 3     1 2015-12-22     2
 4     1 2015-12-23     3
 5     1 2015-12-24     4
 6     1 2015-12-25     5
 7     2 2016-01-15     1
 8     2 2016-06-09     1
 9     2 2016-06-10     2
10     2 2016-06-11     3

person T. Shiftlet    schedule 25.03.2019    source источник
comment
ПРОВЕРЬТЕ с помощью stackoverflow.com/questions/15960352/   -  person BENY    schedule 25.03.2019
comment
Кроме того, вы можете проверить: stackoverflow.com/questions/44314594/   -  person heck1    schedule 25.03.2019
comment
В частности, вы можете сделать DT[, N := DT[.(d_dn = date - 5, d_up = date), on=.(date >= d_dn, date <= d_up), .N, by=.EACHI]$N]   -  person Frank    schedule 25.03.2019
comment
Решение Фрэнка работает как шарм. Спасибо!   -  person T. Shiftlet    schedule 25.03.2019