为什么 `summarize` 会删除一个组?

Why does `summarize` drop a group?

我在玩 babynames pkg。 group_by 命令有效,但在 summarize 之后,其中一个组从组列表中删除。

library(babynames)
babynames[1:10000, ] %>% group_by(year, name) %>% head(1)

# A tibble: 1 x 5
# Groups:   year, name [1]
   year   sex  name     n       prop
  <dbl> <chr> <chr> <int>      <dbl>
1  1880     F  Mary  7065 0.07238433

这很好---两组,year, name。但是在总结之后(正确地尊重组), name 组被删除了。我是不是漏掉了一个简单的错误?

babynames[1:10000, ] %>% 
    group_by(year, name) %>% 
    summarise(n = sum(n)) %>% head(1)

# A tibble: 1 x 3
# Groups:   year [1]
   year  name     n
  <dbl> <chr> <int>
1  1880 Aaron   102

更多信息,以防相关:

R version 3.4.0 (2017-04-21)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS  10.13.2
dplyr_0.7.4

文档中记录了该行为,请参阅 ?summarise Value 部分:

Value An object of the same class as .data. One grouping level will be dropped.


相比之下,mutate 不会 删除任何分组级别:

Value: An object of the same class as .data.