根据R中上一行或下一行的值在列中添加缺少的值

根据R中上一行或下一行的值在列中添加缺少的值,r,imputation,R,Imputation,我有一些纵向数据,需要根据一些规则估算缺失值: 如果某人的第一个后续数据丢失,则添加下一行的值 如果一个人的非首次随访数据丢失,则添加上一行的值 如果缺少多个连续的后续数据,则添加上一个非缺少行的值 举个例子, dat您可以使用approxfun在ave中添加缺少的值进行分组,如: dat$b6 <- ave(dat$b6, dat$id, FUN=function(x) approxfun(x, method = "constant", rule=2)(seq_along(x)))

我有一些纵向数据,需要根据一些规则估算缺失值:

  • 如果某人的第一个后续数据丢失,则添加下一行的值

  • 如果一个人的非首次随访数据丢失,则添加上一行的值

  • 如果缺少多个连续的后续数据,则添加上一个非缺少行的值

  • 举个例子,


    dat您可以使用
    approxfun
    ave
    中添加缺少的值进行分组,如:

    dat$b6 <- ave(dat$b6, dat$id, FUN=function(x)
       approxfun(x, method = "constant", rule=2)(seq_along(x)))
    identical(dat, dat_imputed)
    #[1] TRUE
    

    dat$b6按id分组,向下填充值,然后向上填充。我想这就是你需要的

    库(dplyr)
    图书馆(tidyr)
    res%
    分组依据(id)%>%
    填充(b6,.direction=“down”)%>%
    填充(b6,.direction=“up”)
    
    我想你也可以做
    。direction=“downup”