У меня есть 2 кадра данных. Одним из них является список случайных событий. У него есть столбец даты и столбец значений.
df1 = data.frame(date = c(as.Date('2020-01-01'), as.Date('2020-02-02'), as.Date('2020-03-01')),
value = c(1,5,9))
У меня есть другой фрейм данных, который является ежедневной записью. У него тоже есть столбец даты и столбец значений.
set.seed(1)
df2 = data.frame(date = seq.Date(from = as.Date('2020-01-01'), to = as.Date('2020-04-01'), by = 1),
value = rnorm(92))
Я хочу создать новый столбец в df1, который представляет собой среднее значение df2 $ от текущей даты строки до следующего значения даты (не включая второе значение, поэтому в этом примере первое новое значение будет средним значениями от df2 строки 1 до строки 32, где строка 33 - строка, соответствующая df1 $ date [2]). Результирующий фрейм данных будет выглядеть следующим образом:
date value value_new
1 2020-01-01 1 0.1165512
2 2020-02-02 5 0.0974052
3 2020-03-01 9 0.1241778
Но я понятия не имею, как это указать. Кроме того, я бы предпочел, чтобы последнее значение было средним для любых данных, выходящих за пределы последнего значения df1 $ date, но я бы также принял NA.