首页 > 解决方案 > Tidyverse 组功能用于汇总?

问题描述

我注意到,当使用带有 summarise 的 group_by 语句时,我收到警告说“重新分组正在被 .groups 参数覆盖”。我在网上找到了一篇文章,似乎表明不再需要 group_by 语句——只需在汇总中包含一个 group 参数即可。在为学生准备在线教程时,我想弄清楚如何完成这项工作,并且代码越少越好。但对我来说,它不起作用。下面是我的代表。我只是想得到每个性别的平均年龄

library(tidyverse)

femaledata <- data.frame(age = rnorm(n=5, mean = 29, sd = 4), gender = "female")
maledata <- data.frame(age = rnorm(n=5, mean = 37, sd = 6), gender = "male")
alldata <- bind_rows(femaledata, maledata)

summarydata <- alldata %>%
  summarize(gender, meanage = mean(age))

summarydata 数据框应该只有两行(女性一行,男性一行),每行的平均年龄。相反,我的数据框如下所示:

gender   meanage
female    32.6
female    32.6
female    32.6
female    32.6
female    32.6
male      32.6
male      32.6
male      32.6
male      32.6
male      32.6

我知道 group_by 语句并不复杂,但如果我能去掉一行代码,那就更好了。

谢谢, 威斯

标签: rdplyrsummarize

解决方案


新的 .group 选项不会替换 group_by 函数。该选项是让您设置应该处理分组的方式。

  • “drop_last”:删除最后一级分组。这是 1.0.0 版之前唯一受支持的选项。
  • “drop”:所有级别的分组都被删除。
  • “keep”:与 .data 相同的分组结构。
  • “rowwise”:每一行都是它自己的组。

可以通过将 dplyr.summarise.inform 设置为 false 来关闭未设置 .group 选项时的警告消息。


推荐阅读