summarise() regrouping output 警告

summarise() regrouping output 警告

这里讨论的是return的属性,而不是group_by本身。以下面代码为例,summarise之后给出的警告信息是指,这里return的tibble的atrribute中group_by参数只有homeword,没有species。也就是说,返回一个按照homeword这个level进行group_by的tibble,species被drop掉了。

如果设置.groups = "drop",返回的是一个不带任何group level的tibble。

Unfortunately, it would be very difficult to change this default now because a lot of code probably relies on it. Instead, we’re doing the next best thing: exposing the default behaviour more explicitly and making it easier to change. In dplyr 1.0.0, the code above will display a message telling you how the result has been grouped:

homeworld_species <- starwars %>% 
  group_by(homeworld, species) %>% 
  summarise(n = n())
#> `summarise()` regrouping output by 'homeworld' (override with `.groups` argument)

The text hints at how to take control of grouping and eliminate the message: a new .groups argument allows you to control the grouping of the result. It currently has four possible values:

  • .groups = "drop_last" drops the last grouping level (i.e. the default behaviour sans message).
  • .groups = "drop" drops all grouping levels and returns a tibble.
  • .groups = "keep" preserves the grouping of the input.
  • .groups = "rowwise" turns each row into its own group.
上一篇:ABAP SQL聚合函数简介


下一篇:我如何将这些XDocuments分组?