The function group_by()
converts a tibble into a grouped tbl. The grouping is based on one or more specified columns/variables.
This allows you to carry out various functions in a groupwise manner. These functions are covered in other pages in this section.
Tidyverse reference page
Dataset
For demonstration we’ll load the amphibian_div_tbl
data from the mgrtibbles package (hyperlink includes install instructions).
#Load package
library("mgrtibbles")
#amphibian_div_tbl tibble for demonstration
mgrtibbles::amphibian_div_tbl
# A tibble: 138 × 15
Species IUCN.Red.List.Status iucn_2cat Order Family Genus
<chr> <fct> <fct> <chr> <chr> <chr>
1 Acris blanchardi <NA> <NA> Anura Hylidae Acris
2 Acris crepitans Least Concern (LC) LC Anura Hylidae Acris
3 Acris gryllus Least Concern (LC) LC Anura Hylidae Acris
4 Ambystoma barbouri Near Threatened (NT) nonLC Caudata Ambyst… Amby…
5 Ambystoma jeffersonianum Least Concern (LC) LC Caudata Ambyst… Amby…
6 Ambystoma laterale Least Concern (LC) LC Caudata Ambyst… Amby…
7 Ambystoma macrodactylum Least Concern (LC) LC Caudata Ambyst… Amby…
8 Ambystoma maculatum Least Concern (LC) LC Caudata Ambyst… Amby…
9 Ambystoma texanum Least Concern (LC) LC Caudata Ambyst… Amby…
10 Ambystoma tigrinum Least Concern (LC) LC Caudata Ambyst… Amby…
# ℹ 128 more rows
# ℹ 9 more variables: Age_at_maturity_min_y <dbl>, Age_at_maturity_max_y <dbl>,
# Body_size_mm <dbl>, Longevity_max_y <dbl>, Litter_size_min_n <dbl>,
# Litter_size_max_n <dbl>, Offspring_size_min_mm <dbl>,
# Offspring_size_max_mm <fct>, Development <chr>
One variable/column
Group by one variable/column.
The grouped tibble’s second top line of info states the grouping and the number of different items in the group ([]
).
amphibian_div_tbl |> dplyr::group_by(IUCN.Red.List.Status)
# A tibble: 138 × 15
# Groups: IUCN.Red.List.Status [7]
Species IUCN.Red.List.Status iucn_2cat Order Family Genus
<chr> <fct> <fct> <chr> <chr> <chr>
1 Acris blanchardi <NA> <NA> Anura Hylidae Acris
2 Acris crepitans Least Concern (LC) LC Anura Hylidae Acris
3 Acris gryllus Least Concern (LC) LC Anura Hylidae Acris
4 Ambystoma barbouri Near Threatened (NT) nonLC Caudata Ambyst… Amby…
5 Ambystoma jeffersonianum Least Concern (LC) LC Caudata Ambyst… Amby…
6 Ambystoma laterale Least Concern (LC) LC Caudata Ambyst… Amby…
7 Ambystoma macrodactylum Least Concern (LC) LC Caudata Ambyst… Amby…
8 Ambystoma maculatum Least Concern (LC) LC Caudata Ambyst… Amby…
9 Ambystoma texanum Least Concern (LC) LC Caudata Ambyst… Amby…
10 Ambystoma tigrinum Least Concern (LC) LC Caudata Ambyst… Amby…
# ℹ 128 more rows
# ℹ 9 more variables: Age_at_maturity_min_y <dbl>, Age_at_maturity_max_y <dbl>,
# Body_size_mm <dbl>, Longevity_max_y <dbl>, Litter_size_min_n <dbl>,
# Litter_size_max_n <dbl>, Offspring_size_min_mm <dbl>,
# Offspring_size_max_mm <fct>, Development <chr>
Multiple variables/columns into one group
Group using multiple columns.
amphibian_dv_lineage_group_tbl <- amphibian_div_tbl |> dplyr::group_by(Order, Family, Genus)
amphibian_dv_lineage_group_tbl
# A tibble: 138 × 15
# Groups: Order, Family, Genus [26]
Species IUCN.Red.List.Status iucn_2cat Order Family Genus
<chr> <fct> <fct> <chr> <chr> <chr>
1 Acris blanchardi <NA> <NA> Anura Hylidae Acris
2 Acris crepitans Least Concern (LC) LC Anura Hylidae Acris
3 Acris gryllus Least Concern (LC) LC Anura Hylidae Acris
4 Ambystoma barbouri Near Threatened (NT) nonLC Caudata Ambyst… Amby…
5 Ambystoma jeffersonianum Least Concern (LC) LC Caudata Ambyst… Amby…
6 Ambystoma laterale Least Concern (LC) LC Caudata Ambyst… Amby…
7 Ambystoma macrodactylum Least Concern (LC) LC Caudata Ambyst… Amby…
8 Ambystoma maculatum Least Concern (LC) LC Caudata Ambyst… Amby…
9 Ambystoma texanum Least Concern (LC) LC Caudata Ambyst… Amby…
10 Ambystoma tigrinum Least Concern (LC) LC Caudata Ambyst… Amby…
# ℹ 128 more rows
# ℹ 9 more variables: Age_at_maturity_min_y <dbl>, Age_at_maturity_max_y <dbl>,
# Body_size_mm <dbl>, Longevity_max_y <dbl>, Litter_size_min_n <dbl>,
# Litter_size_max_n <dbl>, Offspring_size_min_mm <dbl>,
# Offspring_size_max_mm <fct>, Development <chr>
Ungroup
If required you can remove the grouping from a tibble with dplyr::ungroup()
.
amphibian_dv_lineage_group_tbl |> dplyr::ungroup()
# A tibble: 138 × 15
Species IUCN.Red.List.Status iucn_2cat Order Family Genus
<chr> <fct> <fct> <chr> <chr> <chr>
1 Acris blanchardi <NA> <NA> Anura Hylidae Acris
2 Acris crepitans Least Concern (LC) LC Anura Hylidae Acris
3 Acris gryllus Least Concern (LC) LC Anura Hylidae Acris
4 Ambystoma barbouri Near Threatened (NT) nonLC Caudata Ambyst… Amby…
5 Ambystoma jeffersonianum Least Concern (LC) LC Caudata Ambyst… Amby…
6 Ambystoma laterale Least Concern (LC) LC Caudata Ambyst… Amby…
7 Ambystoma macrodactylum Least Concern (LC) LC Caudata Ambyst… Amby…
8 Ambystoma maculatum Least Concern (LC) LC Caudata Ambyst… Amby…
9 Ambystoma texanum Least Concern (LC) LC Caudata Ambyst… Amby…
10 Ambystoma tigrinum Least Concern (LC) LC Caudata Ambyst… Amby…
# ℹ 128 more rows
# ℹ 9 more variables: Age_at_maturity_min_y <dbl>, Age_at_maturity_max_y <dbl>,
# Body_size_mm <dbl>, Longevity_max_y <dbl>, Litter_size_min_n <dbl>,
# Litter_size_max_n <dbl>, Offspring_size_min_mm <dbl>,
# Offspring_size_max_mm <fct>, Development <chr>