Skip to content

[Superseded]

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.

Usage

with_groups(.data, .groups, .f, ...)

Arguments

.data

A data frame

.groups

<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.

.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.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