带和函数的R聚合在求和NA时给出值0

时间:2017-06-26 10:22:14

标签: r data.table na zero

我在R中遇到了几个聚合函数的问题 我有这个数据集:

df = data.table(x = rep(letters[1:3], each = 4), y = seq(15,26))

# I put NA value for "b" levels    
df[5:8,2] = NA

对于x的“b”级别,我只有y列的NA值,聚合结果将(NA + NA + ... + NA)的总和替换为0而不是NA(我想要的... 。)

agg1 = ddply(df, .(x), summarize, agg = sum(y, na.rm = TRUE))

agg2 = aggregate(y ~ x, data = df, sum, na.action=na.pass, na.rm=TRUE)

agg3 = df[, agg := sum(y, na.rm = TRUE), by = list(x)]

由于我的真实数据集的复杂性,我无法删除数据集的NA值以超越此问题。

1 个答案:

答案 0 :(得分:0)

你需要的只是删除na.rm = T

  agg2<-  aggregate(y ~ x, data = df, sum, na.action=na.pass)

这就是结果:

> agg2
  x  y
1 a 66
2 b NA
3 c 98