R与sum函数的聚合在对NA求和时给出值0

R与sum函数的聚合在对NA求和时给出值0,r,data.table,na,zero,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(我想要的…) 由于真实数据集的复杂性,我无法删除数据集的NA值来解决此问题。您只需删除NA.rm=t即可 agg

我对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(我想要的…)


由于真实数据集的复杂性,我无法删除数据集的NA值来解决此问题。

您只需删除NA.rm=t即可

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

您只需删除na.rm=T

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

感谢您的解决方案,但如果您有以下行:df[11,2]=NA“a”因子充满了数字,“b”因子充满了NA,“c”因子作为数字和NA。那么你给出的解决方案对这种情况不起作用。你可以在这里找到你的答案:
另外感谢你的解决方案,但是如果你有这样一行:df[11,2]=NA“a”因子充满了数字,“b”因子充满了NA,“c”因子作为数字和NA。那么你给出的解决方案对这种情况不起作用。你可以在这里找到答案:
plus
> agg2
  x  y
1 a 66
2 b NA
3 c 98