【发布时间】:2019-07-31 14:12:52
【问题描述】:
假设我有以下data.frame:
v <- data.frame(user=c("tom", "tom", "joe", "joe", "pat"), grade=c(70, NA, 80, 90, 100), stringsAsFactors = F)
v
user grade
1 tom 70
2 tom NA
3 joe 80
4 joe 90
5 pat 100
假设我想按用户聚合如下:
aggregate(v$grade, by=list(user = v$user), FUN=sum)
user x
1 joe 170
2 pat 100
3 tom NA
我很困惑为什么“tom”以NA 出现,因为在aggregate? 的文档中它说:
na.action
一个函数,它指示数据时应该发生什么 包含 NA 值。默认是忽略缺失值 给定变量。
我是否误解了 na.action 的意思,因为它让我相信它应该忽略 NA 值?
【问题讨论】:
-
aggregate(v$grade, by=list(user = v$user), FUN=sum, na.rm = TRUE) -
na.rm不是此函数文档中列出的参数,但您的解决方案确实有效。什么给了? -
来自
sum。有两个函数参数。 -1) 来自aggregate本身发生na.action的地方 -
那么为什么
na.action不起作用?根据aggregate的文档,函数:sum永远不会看到NA -
na.rm=TRUE通过...参数传递给FUN,所以你正在做sum(something, na.rm=TRUE)