请考虑以下Tibble:
df <- tribble(
~dt, ~value, ~avg,
make_date(2023-08-01),1,NA,
make_date(2023,08,02),2,1,
make_date(2023,08,04),3,1.5,
make_date(2023,08,07),4,3,
make_date(2023,08,08),5,4,
make_date(2023,08,09),6,4.5,
make_date(2023,08,10),7,5,
make_date(2023,08,11),8,6,
make_date(2023,08,12),9,7
)
我想计算三天内所有记录的平均值prior的dt次方.例如,在2023-08-04,我对2023-08-03、2023-08-02和2023-08-01的值取平均值,这些值为NA,2,1,因此这些(na.rm)值的平均值为1.5.
因此,在本例中,我想添加列‘avg’:
dt value avg
<date> <dbl> <dbl>
2014-01-01 1 NA
2023-08-02 2 1
2023-08-04 3 1.5
2023-08-07 4 3
2023-08-08 5 4
2023-08-09 6 4.5
2023-08-10 7 5
2023-08-11 8 6
2023-08-12 9 7
日期之间可能有任何大小的差距.实际的应用程序将有多个日期(以千为单位),并按主题ID(此处不包括)进行分组.对于其他窗口大小,可能需要重复之前的三天.