This was an experimental function that allows you to modify the grouping
variables for a single operation; it is superseded in favour of using the
.by argument to individual verbs.
with_groups(.data, .groups, .f, ...)A data frame
<tidy-select> One or more variables
to group by. Unlike group_by(), you can only group by existing variables,
and you can use tidy-select syntax like c(x, y, z) to select multiple
variables.
Use NULL to temporarily ungroup.
Function to apply to regrouped data.
Supports purrr-style ~ syntax
Additional arguments passed on to ....
df <- tibble(g = c(1, 1, 2, 2, 3), x = runif(5))
# Old
df %>%
with_groups(g, mutate, x_mean = mean(x))
#> # A tibble: 5 × 3
#> g x x_mean
#> <dbl> <dbl> <dbl>
#> 1 1 0.764 0.791
#> 2 1 0.819 0.791
#> 3 2 0.761 0.795
#> 4 2 0.829 0.795
#> 5 3 0.00851 0.00851
# New
df %>% mutate(x_mean = mean(x), .by = g)
#> # A tibble: 5 × 3
#> g x x_mean
#> <dbl> <dbl> <dbl>
#> 1 1 0.764 0.791
#> 2 1 0.819 0.791
#> 3 2 0.761 0.795
#> 4 2 0.829 0.795
#> 5 3 0.00851 0.00851