ÃÛÌÒÊÓÆµ

Arranging rows with arrange()

Sometimes it is helpful to sort data, alphabetically or numerically, using the arrange() function from dplyr.

To arrange all penguins, in order of increasing bill length:

penguins %>%
  arrange(bill_length_mm)
## # A tibble: 344 × 8
##    species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
##    <fct>   <fct>              <dbl>         <dbl>             <int>       <int>
##  1 Adelie  Dream               32.1          15.5               188        3050
##  2 Adelie  Dream               33.1          16.1               178        2900
##  3 Adelie  Torgersen           33.5          19                 190        3600
##  4 Adelie  Dream               34            17.1               185        3400
##  5 Adelie  Torgersen           34.1          18.1               193        3475
##  6 Adelie  Torgersen           34.4          18.4               184        3325
##  7 Adelie  Biscoe              34.5          18.1               187        2900
##  8 Adelie  Torgersen           34.6          21.1               198        4400
##  9 Adelie  Torgersen           34.6          17.2               189        3200
## 10 Adelie  Biscoe              35            17.9               190        3450
## # … with 334 more rows, and 2 more variables: sex <fct>, year <int>

In order or decreasing bill length:

penguins %>%
  arrange(desc(bill_length_mm))
## # A tibble: 344 × 8
##    species   island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
##    <fct>     <fct>           <dbl>         <dbl>             <int>       <int>
##  1 Gentoo    Biscoe           59.6          17                 230        6050
##  2 Chinstrap Dream            58            17.8               181        3700
##  3 Gentoo    Biscoe           55.9          17                 228        5600
##  4 Chinstrap Dream            55.8          19.8               207        4000
##  5 Gentoo    Biscoe           55.1          16                 230        5850
##  6 Gentoo    Biscoe           54.3          15.7               231        5650
##  7 Chinstrap Dream            54.2          20.8               201        4300
##  8 Chinstrap Dream            53.5          19.9               205        4500
##  9 Gentoo    Biscoe           53.4          15.8               219        5500
## 10 Chinstrap Dream            52.8          20                 205        4550
## # … with 334 more rows, and 2 more variables: sex <fct>, year <int>

For text data, dplyr will arrange alphabetically.

penguins %>%
  arrange(species)
## # A tibble: 344 × 8
##    species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
##    <fct>   <fct>              <dbl>         <dbl>             <int>       <int>
##  1 Adelie  Torgersen           39.1          18.7               181        3750
##  2 Adelie  Torgersen           39.5          17.4               186        3800
##  3 Adelie  Torgersen           40.3          18                 195        3250
##  4 Adelie  Torgersen           NA            NA                  NA          NA
##  5 Adelie  Torgersen           36.7          19.3               193        3450
##  6 Adelie  Torgersen           39.3          20.6               190        3650
##  7 Adelie  Torgersen           38.9          17.8               181        3625
##  8 Adelie  Torgersen           39.2          19.6               195        4675
##  9 Adelie  Torgersen           34.1          18.1               193        3475
## 10 Adelie  Torgersen           42            20.2               190        4250
## # … with 334 more rows, and 2 more variables: sex <fct>, year <int>