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.
Arguments
- .data
A data frame
- .groups
<
tidy-select
> One or more variables to group by. Unlikegroup_by()
, you can only group by existing variables, and you can use tidy-select syntax likec(x, y, z)
to select multiple variables.Use
NULL
to temporarily ungroup.- .f
Function to apply to regrouped data. Supports purrr-style
~
syntax- ...
Additional arguments passed on to
...
.
Examples
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.690 0.609
#> 2 1 0.529 0.609
#> 3 2 0.681 0.688
#> 4 2 0.695 0.688
#> 5 3 0.936 0.936
# New
df %>% mutate(x_mean = mean(x), .by = g)
#> # A tibble: 5 × 3
#> g x x_mean
#> <dbl> <dbl> <dbl>
#> 1 1 0.690 0.609
#> 2 1 0.529 0.609
#> 3 2 0.681 0.688
#> 4 2 0.695 0.688
#> 5 3 0.936 0.936