calculating sum of previous 3 rows in R data.table (by grid-square)

前端 未结 6 1465
一生所求
一生所求 2020-12-03 23:32

I would like to calculate the rainfall that has fallen over the last three days for each grid square, and add this as a new column in my data.table. To be clear, I want to s

6条回答
  •  孤街浪徒
    2020-12-04 00:19

    The rollapply solution would be done like this:

    weather[, rain_3 := rollapplyr(rain, 3, sum, fill = NA_real_), by = square]
    

    giving:

        rain square desired_result rain_3
     1:   NA      1             NA     NA
     2:   NA      1             NA     NA
     3:   NA      1             NA     NA
     4:    0      1             NA     NA
     5:    0      1             NA     NA
     6:    5      1              5      5
     7:    1      1              6      6
     8:    0      1              6      6
     9:    3      1              4      4
    10:   10      2             NA     NA
    

    Update

    Have simplified based on version of zoo that came out since this question was originally asked.

提交回复
热议问题