允许在聚合函数中使用 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
希望能提前sense.Thanks。
使用 addNA
将 NA
视为 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
这是虚拟数据
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
希望能提前sense.Thanks。
使用 addNA
将 NA
视为 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