вычисление суммы предыдущих 3 строк в R data.table (по квадрату сетки)

Я хотел бы рассчитать количество осадков, выпавших за последние три дня для каждого квадрата сетки, и добавить это в качестве нового столбца в моей data.table. Чтобы было ясно, я хочу подвести итог текущего и ПРЕДЫДУЩЕГО двух (2) дней осадков, для каждого квадрата метрологической сетки

library ( zoo )
library (data.table)


# making the data.table
rain           <- c(NA, NA, NA, 0, 0, 5, 1, 0, 3, 10)  # rainfall values to work with
square         <- c(1,1,1,1,1,1,1,1,1,2)               # the geographic grid square for the rainfall measurement
desired_result <- c(NA, NA, NA, NA, NA, 5, 6, 6, 4, NA )  # this is the result I'm looking for (the last NA as we are now on to the first day of the second grid square)
weather <- data.table(rain, square, desired_result)  # making the data.table

Моя попытка ответить: эта строка работала, но больше не работает

weather[, rain_3 := filter(rain, rep(1, 2), sides = 1), by = list(square)]  

Итак, здесь я пытаюсь другой метод:

# this next line gets the numbers right, but sums the following values, not the preceeding ones. 
weather$rain_3 <- rollapply(zoo(weather$rain), list(seq(-2,0)), sum)

# here I add in the by weather$ square, but still no success
weather$rain_3 <- rollapply(zoo(weather$rain), list(seq(-2,0)), sum, by= list(weather$square))

Я был бы очень признателен за любые идеи или предложения, которые вы можете иметь.

Большое спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос