在R中按NA值聚合

时间:2016-10-12 13:44:53

标签: r

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

有人可以帮忙吗?

1 个答案:

答案 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