首页 > 解决方案 > 如何使用为每个组输入的最后日期填写 NA

问题描述

我想将NA我列中的 s 替换为为此输入的最后日期ID。下面是一个示例ID=1:将DATE_old列转换为DATE_new下面的列:

DF =
ID       DATE_old       DATE_new
1        1/1/2018       1/1/2018
1        NA             1/1/2018
1        NA             1/1/2018
1        3/1/2018       3/1/2018
1        NA             3/1/2018
2 .....

我试过na.locf()了,但没有奏效:

DF$DATE_new <- ddply(DF$DATE_old, ~ID, na.locf)

标签: rtime-seriesplyrnalag

解决方案


基于这个例子,我们可以用相邻的非 NA 前值fill替换NA

library(dplyr)
df %>% 
    group_by(id) %>%
    fill(DATE_old)

推荐阅读