写了很久,只能做到用id的平均值来填补,code如下:
library(dplyr)
groupmean <- function(x){
na.pos <- is.na(x)
x[na.pos] <- mean(x[!na.pos], na.rm = TRUE)
as.numeric(x)
}
dat %>%
group_by(id) %>%
mutate_at(vars(A), groupmean)
不知道如果用要将NA改成前一年度及后一年度的平均要怎么处理?
如下:
id Year A imputed
1 2000 6 6
1 2001 NA 7
1 2002 8 8
1 2003 10 10
2 2000 2 2
2 2001 NA 5
2 2002 8 8
2 2003 5 5
3 2000 9 9
3 2001 10 10
3 2002 NA 10.5
3 2003 11 12