Group by

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>