有没有办法使用 dplyr
group_by()
进行汇总,然后取全局平均值,然后将其添加到同一数据框中,而无需创建第二个数据框?
现在我是这样做的:
library(dplyr)
speciesiris <- iris %>%
group_by(Species) %>%
summarise(mpw=mean(Petal.Width))
iris %>%
summarise(mpw=mean(Petal.Width)) %>%
mutate(Species="All Species") %>%
bind_rows(speciesiris)
这里一个潜在的陷阱是,我想要的不是均值,而是全局均值或至少两者兼而有之。那么有没有更好的方法可以希望在一个管道中做到这一点呢?
一行即可完成所有操作(但不推荐):
iris %>% summarise(mpw=mean(Petal.Width)) # Global mean
%>% mutate(Species="All Species")
%>% bind_rows(
iris %>% group_by(Species) # Mean by Species
%>% summarise(mpw=mean(Petal.Width))
)