添加填充NA的行以完成我的数据

时间:2014-05-26 13:52:53

标签: r

我想添加行,以便每年有5行,充满了NA。

我的数据集:

df <- data.frame( a= c(2001,2001,2001,2001,2003,2004,2004,2004,2004,2004),
                  b= c(2,4,5,7,8,6,2,4,2,1))

我想要的输出:

df2 <- data.frame( a= c(2001,2001,2001,2001,2001,2002,2002,2002,2002,2002,2003,2003,2003,2003,2003,2004,2004,2004,2004,2004),
                  b= c(2,4,5,7,NA,NA,NA,NA,NA,NA,8,NA,NA,NA,NA,6,2,4,2,1) )

修改

我的数据中存在的其他年份每年有超过5个值保持不变!

1 个答案:

答案 0 :(得分:1)

基础R解决方案:

do.call(rbind,
  by(df,df$a,function(x){
    if(nrow(x)<5)  
      rbind(x,data.frame(a=unique(x$a),b=rep(NA,5-nrow(x))))
    else x
  })
)