繁体   English   中英

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

[英]Add rows filled with NA to complete my data

我想添加行,以便每年有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个以上的值不变!

基本的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
  })
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM