Split data frame by groups. Returns a list.
group_split(.df, ..., .keep = TRUE, .named = FALSE)
A data.frame or data.table
Columns to group and split by. tidyselect
compatible.
Should the grouping columns be kept
experimental: Should the list be named with labels that identify the group
df <- tidytable(
a = 1:3,
b = 1:3,
c = c("a", "a", "b"),
d = c("a", "a", "b")
)
df %>%
group_split(c, d)
#> [[1]]
#> # A tidytable: 2 × 4
#> a b c d
#> <int> <int> <chr> <chr>
#> 1 1 1 a a
#> 2 2 2 a a
#>
#> [[2]]
#> # A tidytable: 1 × 4
#> a b c d
#> <int> <int> <chr> <chr>
#> 1 3 3 b b
#>
df %>%
group_split(c, d, .keep = FALSE)
#> [[1]]
#> # A tidytable: 2 × 2
#> a b
#> <int> <int>
#> 1 1 1
#> 2 2 2
#>
#> [[2]]
#> # A tidytable: 1 × 2
#> a b
#> <int> <int>
#> 1 3 3
#>
df %>%
group_split(c, d, .named = TRUE)
#> $a_a
#> # A tidytable: 2 × 4
#> a b c d
#> <int> <int> <chr> <chr>
#> 1 1 1 a a
#> 2 2 2 a a
#>
#> $b_b
#> # A tidytable: 1 × 4
#> a b c d
#> <int> <int> <chr> <chr>
#> 1 3 3 b b
#>