Skip to content

This is a method for the dplyr group_by() generic. It is translated to the GROUP BY clause of the SQL query when used with summarise() and to the PARTITION BY clause of window functions when used with mutate().


# S3 method for tbl_lazy
group_by(.data, ..., .add = FALSE, add = deprecated(), .drop = TRUE)



A lazy data frame backed by a database query.


<data-masking> Variables, or functions of variables. Use desc() to sort a variable in descending order.


When FALSE, the default, group_by() will override existing groups. To add to the existing groups, use .add = TRUE.

This argument was previously called add, but that prevented creating a new grouping variable called add, and conflicts with our naming conventions.


Deprecated. Please use .add instead.


Not supported by this method.


library(dplyr, warn.conflicts = FALSE)

db <- memdb_frame(g = c(1, 1, 1, 2, 2), x = c(4, 3, 6, 9, 2))
db %>%
  group_by(g) %>%
  summarise(n()) %>%
#> <SQL>
#> SELECT `g`, COUNT(*) AS `n()`
#> FROM `dbplyr_1qeoeBlLyC`
#> GROUP BY `g`

db %>%
  group_by(g) %>%
  mutate(x2 = x / sum(x, na.rm = TRUE)) %>%
#> <SQL>
#> SELECT `dbplyr_1qeoeBlLyC`.*, `x` / SUM(`x`) OVER (PARTITION BY `g`) AS `x2`
#> FROM `dbplyr_1qeoeBlLyC`