Funksjonen arrange() sorterer rader (observasjoner) i stigende eller synkende rekkefølge. Funksjonen er enkel å bruke og kan kombineres med funksjonen group_by() slik at sorteringen skjer på hvert nivå som spesifiseres i group_by(). Funksjonen arrange() har argumentet .by_group, som settes til TRUE dersom sorteringen skal respektere group_by().
Du kan sortere på flere variabler i stigende eller synkende rekkefølge. For å sortere i synkende rekkefølge må variabelen omsluttes av desc(), som er en forkortelse for descending (synkende).
Funksjonen arrange() demonstreres ved hjelp av mpg-datasettet.
Eksempel: Sorter på variabelen displ i stigende rekkefølge:
mpg |>
arrange(displ)## A tibble: 234 × 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 honda civic 1.6 1999 4 manual(m5) f 28 33 r subcompact
2 honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
3 honda civic 1.6 1999 4 manual(m5) f 25 32 r subcompact
4 honda civic 1.6 1999 4 manual(m5) f 23 29 p subcompact
5 honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
6 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
7 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
10 honda civic 1.8 2008 4 manual(m5) f 26 34 r subcompact
11 honda civic 1.8 2008 4 auto(l5) f 25 36 r subcompact
12 honda civic 1.8 2008 4 auto(l5) f 24 36 c subcompact
13 toyota corolla 1.8 1999 4 auto(l3) f 24 30 r compact
14 toyota corolla 1.8 1999 4 auto(l4) f 24 33 r compact
15 toyota corolla 1.8 1999 4 manual(m5) f 26 35 r compact
16 toyota corolla 1.8 2008 4 manual(m5) f 28 37 r compact
17 toyota corolla 1.8 2008 4 auto(l4) f 26 35 r compact
18 volkswagen passat 1.8 1999 4 manual(m5) f 21 29 p midsize
19 volkswagen passat 1.8 1999 4 auto(l5) f 18 29 p midsize
20 volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compactEksempel: Sorter på variabelen displ i stigende rekkefølge og hwy i synkende rekkefølge:
mpg |>
arrange(displ, desc(hwy))## A tibble: 234 × 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 honda civic 1.6 1999 4 manual(m5) f 28 33 r subcompact
2 honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
3 honda civic 1.6 1999 4 manual(m5) f 25 32 r subcompact
4 honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
5 honda civic 1.6 1999 4 manual(m5) f 23 29 p subcompact
6 toyota corolla 1.8 2008 4 manual(m5) f 28 37 r compact
7 honda civic 1.8 2008 4 auto(l5) f 25 36 r subcompact
8 honda civic 1.8 2008 4 auto(l5) f 24 36 c subcompact
9 toyota corolla 1.8 1999 4 manual(m5) f 26 35 r compact
10 toyota corolla 1.8 2008 4 auto(l4) f 26 35 r compact
11 honda civic 1.8 2008 4 manual(m5) f 26 34 r subcompact
12 toyota corolla 1.8 1999 4 auto(l4) f 24 33 r compact
13 toyota corolla 1.8 1999 4 auto(l3) f 24 30 r compact
14 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
15 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
16 volkswagen passat 1.8 1999 4 manual(m5) f 21 29 p midsize
17 volkswagen passat 1.8 1999 4 auto(l5) f 18 29 p midsize
18 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
19 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
20 volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compactEksempel: Sorter med group_by() aktivert
For at observasjonene skal sorteres separat for ulike nivåer i en kategorisk variabel, brukes group_by(). I group_by() spesifiseres én eller flere kategoriske variabler som sorteringen skal grupperes etter (det er mulig å angi flere). Da skjer sorteringen separat innenfor hver kategori. I eksempelet nedenfor sorterer vi mpg-datasettet etter variabelen displ, og dette skjer separat for hver bilprodusent (manufacturer).
mpg |>
group_by(manufacturer) |>
arrange(displ)## Groups: manufacturer [15]
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 honda civic 1.6 1999 4 manual(m5) f 28 33 r subcompact
2 honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
3 honda civic 1.6 1999 4 manual(m5) f 25 32 r subcompact
4 honda civic 1.6 1999 4 manual(m5) f 23 29 p subcompact
5 honda civic 1.6 1999 4 auto(l4) f 24 32 r subcompact
6 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
7 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
10 honda civic 1.8 2008 4 manual(m5) f 26 34 r subcompactAlle operasjoner etter group_by() vil skje gruppert, det vil si separat i de gruppene som group_by() spesifiserer. Dersom resultatet lagres i en ny dataframe, vil også den fortsatt være gruppert, slik at påfølgende operasjoner skjer separat i hver gruppe. I eksempelet nedenfor brukes mpg til å lage mpg2 etter at group_by() er brukt. Det betyr at også mpg2 vil være gruppert på variabelen manufacturer, noe som kan skape forvirring senere.
mpg2 <- mpg |>
group_by(manufacturer) |>
arrange(displ)For å fjerne grupperingen brukes funksjonen ungroup(). Eksempel:
mpg2 <- mpg |>
group_by(manufacturer) |>
arrange(displ) |>
ungroup()Nå vil mpg2 ikke være gruppert på manufacturer.