x1 <- c(1, 2, 3)
x2 <- c("a", "b", "a")
x3 <- as.Date(c(NA, "2016/01/01", NA), "%Y/%m/%d")
df <- data.frame(x1,x2,x3)
我将汇总应用于df
:
aggregate(x1~x2+x3, df, sum)
结果如下所示,但忽略了NA
值:
x2 x3 x1
b 2016/01/01 2
所以我需要的是聚合NA
值并得到如下结果:
x2 x3 x1
a NA 4
b 2016/01/01 2
有人可以帮忙吗?
答案 0 :(得分:0)
我通过添加NA
作为因子级别然后执行聚合来完成此操作:
x1 <- c(1, 2, 3)
x2 <- c("a", "b", "a")
x3 <- as.factor(as.Date(c(NA, "2016/01/01", NA), "%Y/%m/%d"))
x3 <- addNA(x3)
df <- data.frame(x1,x2,x3)
aggregate(x1~x2+x3, df, sum)
x2 x3 x1 1 b 2016-01-01 2 2 a <NA> 4