【发布时间】:2016-02-20 09:55:40
【问题描述】:
我以下面的data.frame为例:
d <- data.frame(x=c(1,NA), y=c(2,3))
我想用变量 x 来总结 y 的值。由于 x 没有共同的值,我希望聚合只给我原始的 data.frame,其中 NA 被视为一个组。但是聚合给了我以下结果。
>aggregate(y ~ x, data=d, FUN=sum)
x y
1 1 2
我已阅读有关更改 na.action 的默认操作的文档,但它似乎没有给我任何有意义的东西。
>aggregate(y ~ x, data=d, FUN=sum, na.action=na.pass)
x y
1 1 2
发生了什么事?在这种情况下,我似乎不明白 na.pass 在做什么。是否可以选择在 R 中完成我想要的?任何帮助将不胜感激。
【问题讨论】:
-
您是说您正在考虑将
NA值作为分组变量?你想要NA吗? (不清楚,因为您也在使用na.rm = TRUE作为测试的一部分...... -
是的,我希望 NA 作为一个组。
-
文档说“在任何 by 变量中缺少值的行都将从结果中省略。”如果您不希望这样,您需要重新编码您的
by变量或使用不同的函数进行聚合。