繁体   English   中英

允许在聚合函数中与NA分组

[英]Allow grouping with NA in aggregate function

这是虚拟数据

temp.df <- data.frame(count = rep(1,6), x = c(1,1,NA,NA,3,10), y=c("A","A","A","A","B","B"))

当我按如下所示应用汇总时:

aggregate(count ~ x + y, data=temp.df, FUN=sum, na.rm=FALSE, na.action=na.pass)

我得到:

   x y count
1  1 A     2
2  3 B     1
3 10 B     1

但是,我想要以下输出:

   x  y count
1  NA A     2
2  1  A     2
3  3  B     1
4 10  B     1

希望有道理,谢谢。

使用addNANA视为x的不同级别。

> temp.df$x <- addNA(temp.df$x)
> aggregate(count ~ x + y, data=temp.df, FUN=sum, na.rm=FALSE, na.action=na.pass)
     x y count
1    1 A     2
2 <NA> A     2
3    3 B     1
4   10 B     1

一种选择是将NA转换为字符"NA" (但是我不确定为什么需要缺少的值)

temp.df$x[is.na(temp.df$x)] <- 'NA'
aggregate(count ~ x + y, data=temp.df, FUN=sum, na.rm=FALSE, na.action=na.pass)
#   x y count
#1  1 A     2
#2 NA A     2
#3 10 B     1
#4  3 B     1

暂无
暂无

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

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