【发布时间】:2018-06-08 11:38:56
【问题描述】:
我们可以按气缸对 mtcar 进行分组,并使用一些简单的代码汇总每加仑英里数。
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarise(avg = mean(mpg))
这提供了如下所示的正确输出。
cyl avg
1 4 26.66364
2 6 19.74286
3 8 15.10000
如果我请 dplyr 排除 NA,我会得到一些奇怪的结果。
mtcars %>%
group_by(cyl) %>%
summarise(avg = mean(!is.na(mpg)))
由于此数据集中没有 NA,因此结果应与上述相同。但它将所有 mpg 平均为“1”。 我的代码有问题还是 dplyr 中的错误?
cyl avg
1 4 1
2 6 1
3 8 1
我的实际数据集确实有一些我需要排除的 NA 仅用于此摘要,但表现出相同的行为。
【问题讨论】:
-
你取的是
logical值的平均值,而不是mean(!is.na(mpg))时的数字值