Funktionen arrange() sorterer rækker (observationer) i stigende eller faldende rækkefølge. Funktionen er nem at bruge og kan kombineres med funktionen group_by(), så sorteringen sker på hvert niveau, der specificeres i group_by(). Funktionen arrange() har argumentet .by_group, som sættes til TRUE, hvis sorteringen skal respektere group_by().
Du kan sortere på flere variabler i stigende eller faldende rækkefølge. For at sortere i faldende rækkefølge skal variablen omsluttes af desc(), som er en forkortelse for descending (faldende).
Funktionen arrange() demonstreres ved hjælp af mpg-data.
Eksempel: Sortér på variablen displ i stigende rækkefø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: Sortér på variablen displ i stigende rækkefølge og hwy i faldende rækkefø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: Sortér med group_by() aktiveret
For at observationerne skal sorteres separat for forskellige niveauer af en kategorisk variabel bruges group_by(). I group_by() specificeres en eller flere kategoriske variabler, som sorteringen skal grupperes efter (det er muligt at angive flere). Så sker sorteringen separat inden for hver kategori. I eksemplet nedenfor sorterer vi mpg-data efter variablen displ, og det sker separat for hver bilproducent (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 operationer efter group_by() vil ske grupperet, dvs. separat i de grupper, som group_by() specificerer. Hvis resultatet gemmes i en ny dataframe, vil også den fortsat være grupperet, så efterfølgende operationer sker separat i hver gruppe. I eksemplet nedenfor bruges mpg til at oprette mpg2, efter at group_by() er blevet anvendt. Det betyder, at også mpg2 vil være grupperet på variablen manufacturer, hvilket kan skabe forvirring senere.
mpg2 <- mpg |>
group_by(manufacturer) |>
arrange(displ)For at fjerne grupperingen bruges funktionen ungroup(). Eksempel følger:
mpg2 <- mpg |>
group_by(manufacturer) |>
arrange(displ) |>
ungroup()Nu vil mpg2 ikke være grupperet på manufacturer.