我有一个数据框,我正在使用:
df <- data.frame(dates = seq(as.Date("2016-01-01"),as.Date("2016-01-10"), by=1)
, category = c(rep("a",5), rep("b",5))
, values= c(1, rep(NA,4), 5,6, rep(NA,3)))
df %>% group_by(category) %>% fill(values)
但我希望fill仅向前填充一定数量的位置(即如果它距离初始点太远,则停止向前填充)。是否有一种不需要for循环的简单方法来实现这一点?
在这个例子中,如果日期距离最后一个非 NA 点超过2天,我想停止填充。因此,值列应该是:
values = c(1,1,1,NA,NA, 5,6,6,6,NA)
Thank you