У меня есть фрейм данных, который выглядит следующим образом:
structure(list(week = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
freq = c(0, 4.34, 1.24, 0, 5.26, 0, 7.12, 3.70, 0, 0),
event = c(0, 0, 0, 0, 0, 0, 1, 0, 0, 0)),
row.names = c(NA, -10L),
class = c("tbl_df", "tbl", "data.frame"))
Мне нужно создать новый столбец, вычисляющий, в соответствии с событием = 1, среднее значение freq для окна между -2 и -4 предыдущих недель, определяемые переменной неделей. Например, поскольку событие = 1 на неделе 7, я бы хотел усреднить частоту для недель 2, 3, 4 и 5. Это должно повторяться каждый раз, когда событие равно 1. Это среднее значение должно быть указано в новом столбце. в строке, где событие = 1.
Точно так же мне нужно будет сгенерировать другой столбец со средним значением окна -1; +2 по отношению к событию = 1, поэтому в этом случае недели от 6 до 9.
Конечный результат должен выглядеть следующим образом:
week freq event mean1 mean2
1 0 0 NA NA
2 4.34 0 NA NA
...
7 7.12 1 2.71 2.705
...
Буду признателен, если вы поможете мне по этому поводу я прочитал несколько похожих тем, но не смог найти решения этой конкретной c проблемы.