Я хочу вычислить скользящую сумму и скользящее среднее моих данных с размером скользящего окна, определенного для каждой строки.
Например, предположим, у меня есть дневная температура и суточные осадки для разных городов. Я хочу рассчитать прошлые средние температуры и прошлые кумулятивные дожди для каждого города, но окно анализа меняется в каждой строке. Мне также нужно рассчитать климатические переменные прошлого c, но пропустив первые несколько наблюдений.
Приведенный ниже код помогает привести пример моих потребностей.
set.seed(122)
df <- data.frame(rain = rep(5,10),temp=1:10, skip = sample(0:2,10,T),
windw_sz = sample(1:2,10,T),city =c(rep("a",5),rep("b",5)),ord=rep(c(1:5),2))
df
rain temp skip windw_sz city ord
1 5 1 0 2 a 1
2 5 2 1 1 a 2
3 5 3 2 2 a 3
4 5 4 2 1 a 4
5 5 5 2 2 a 5
6 5 6 0 1 b 1
7 5 7 2 2 b 2
8 5 8 1 2 b 3
9 5 9 2 1 b 4
10 5 10 2 2 b 5
В первой строке пропустите == 0 и window_size == 2, поэтому я должен рассмотреть переменные за сегодня и вчера. Во второй строке пропустите == 1 и размер окна == 1, поэтому мне нужно учитывать переменные только со вчерашнего дня. В третьей строке пропустите == 2 и размер окна == 2, поэтому я должен пропустить переменную с сегодняшнего дня и вчера и рассмотреть только два дня до вчерашнего дня.
Любое решение приветствуется, но мне бы особенно понравилось что-то с data.table.
Большое спасибо за любые предложения