我在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值以超越此问题。
答案 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