我的df看起来像这样
df <- read.table(text="
id date
2 NA
2 2018-11-01
2 NA
2 NA
2 2019-11-01
2 NA
3 2018-01-01
3 NA
3 NA
3 NA
", header=TRUE)
我的目标是通过上面的值填充NA。但是一旦价值不是NA,那么我想用它填充下一个NA。换句话说,结果应如下所示:
result <- read.table(text="
id date
2 NA
2 2018-11-01
2 2018-11-01
2 2018-11-01
2 2019-11-01
2 2019-11-01
3 2018-01-01
3 2018-01-01
3 2018-01-01
3 2018-01-01
", header=TRUE)
请注意,id 2的第一行是NA,由于它上面没有行,所以值仍然是NA,
答案 0 :(得分:1)
选项为fill
library(dplyr)
df %>%
group_by(id) %>%
fill(date)