Saya memiliki kumpulan data besar yang terstruktur sebagai berikut:

r
2
Pat Taggart 17 Juni 2021, 04:16

1 menjawab

Anda dapat melakukan:

dat %>%
  group_by(Region) %>%
  mutate(a = accumulate(c(0, diff(Date)), ~if(.x+.y < 365).x+.y else 0))%>%
  group_by(Count = cumsum(a==0)) %>%
  mutate(Count = seq(n())- 1, a = NULL)
         
  Date       Region        Count
   <date>     <chr>         <dbl>
 1 2017-01-01 Adelaide          0
 2 2017-01-20 Albany            0
 3 2017-04-15 Albany            1
 4 2017-11-03 Albany            2
 5 2018-01-03 Albany            3
 6 2019-12-12 Albany            0
 7 2020-03-07 Albany            1
 8 2014-05-19 Middleton         0
 9 2009-07-03 Alice Springs     0
10 2010-02-04 Alice Springs     1

Anda juga dapat melakukan:

library(data.table)

setDT(dat)
dat[, Count := c(0, diff(Date)), Region][,
      Count := rowid(cumsum(replace(Count, Count>365, 0) == 0))-1]
0
Onyambu 17 Juni 2021, 02:02