【发布时间】:2022-01-17 20:17:37
【问题描述】:
我汇总了包含NAs 的数据,因此我包括na.action = NULL,如here 所述。这是有效的代码:
# Toy data.
df <- data.frame(x= 1:10, group= rep(1:2, 5), other_var= rnorm(10))
# Aggragate with formula.
aggregate(formula= x ~ group, data= df, na.action= NULL, FUN= function(i) sum(i))
在我的情况下,我无法提供变量名称作为公式,因为它们可以更改。因此,我在x 和by 参数中为他们提供了一个字符串向量,如下所示:
var_names <- c("x", "group")
aggregate(x= df[ , var_names[1]], by= list(df[ , var_names[2]]), na.action= NULL, FUN= function(i) sum(i))
这会导致错误。有趣的是,省略了na.action= NULL,例如aggregate(x= df[ , var_names[1]], by= list(df[ , var_names[2]]), FUN= function(i) sum(i)),不会以错误结束,而是返回预期的输出。在提供列名作为向量时,如何避免包含 NAs 的行消失?我确实需要包含na.action= NULL,因为我的真实数据包含NAs。
【问题讨论】:
-
研究文档。只有
aggregate.formula有na.action参数。 -
我觉得你的例子令人困惑。链接的帖子描述了一种不同的情况,即如果您在公式的 LHS 上有
.。既然你没有那个,我不明白你为什么要摆弄na.action参数。 -
@Roland 你说得对,我的示例数据不好。它甚至不包含 NA。我只是制作数据来重现错误。当然,我的真实数据看起来不一样。