Gå till index

Analys och forskning med R

0% färdig
0/0 Steps
  1. Analys och forskning med R och Posit (Rstudio)
  2. Grunderna i R och Rstudio
    7 Ämnen
  3. Importera, exportera, spara och ladda data
    5 Ämnen
  4. Strängar och regular expressions (regex)
    1 Ämne
  5. Bearbetning av data med dplyr
    12 Ämnen
  6. Visualisera och presentera
    14 Ämnen
  7. Explorerande och deskriptiva analyser
    6 Ämnen
  8. Prediktionsmodeller
    12 Ämnen
  9. Klassisk regressionsanalys
    8 Ämnen
  10. Machine learning (ML) och Artificiell Intelligens (AI)
    9 Ämnen
  11. Skapa prediktionsmodeller med Tidymodels
    6 Ämnen
  12. Hypotestester och epidemiologiska mått
    5 Ämnen
Avsnitt 5, Ämne 5

Dplyr arrange(): sortera rader (observationer)

Avsnitt Progress
0% färdig

Funktionen arrange() sorterar rader (observationer) i stigande eller fallande ordning. Funktionen är enkel att använda och kan kombineras med funktionen group_by() för att sortering ska ske på varje nivå som specificeras i group_by(). Funktionen arrange() har argumentet .by_group som specificeras till TRUE om sorteringen skall respektera group_by().

Du kan sortera på flera variabler i stigande eller fallande ordning. För att sortera på fallande ordning måste variabeln omges av desc() som som är förkortning för descending (minskande).

Funktionen arrange() demonstreras med hjälp av mpg data.

Exempel: Sortera på variabeln displ i stigande ordning:

R
mpg |>
  arrange(displ)
R
# 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     compact

Exempel: Sortera på variabeln displ i stigande ordning och hwy i fallande ordning:

R
mpg |>
  arrange(displ, desc(hwy))
R
# 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     compact   

Exempel: Sortera med group_by() aktiverat

För att observationerna ska sorteras separat för olika nivåer i en kategorisk variabel används group_by(). I group_by() specificeras en eller flera kategoriska variabler som sorteringen skall grupperas på (det är möjligt att ange flera). Då sker sorteringen separat inom varje kategori. I exemplet nedan sorterar vi mpg data efter variabeln displ och detta sker separat för varje biltillverkare (manufacturer).

R
mpg |>
  group_by(manufacturer) |>
  arrange(displ)
Resultat
# 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     subcompact

Alla operationer efter group_by() kommer ske grupperat, dvs separat i de grupper som group_by() specificerar. Om resultatet sparas i en ny dataframe kommer även den vara fortsatt grupperad, så att efterkommande operationer sker separat i varje grupp. I nedanstående exempel används mpg för att skapa mpg2 efter att group_by() har använts. Det innebär att även mpg2 kommer vara grupperad på variabeln manufacturer, vilket kan orsaka förvirring senare.

R
mpg2 <- mpg |>
  group_by(manufacturer) |>
  arrange(displ)

För att ta bort grupperingen används funktionen ungroup(). Exempel följer:

R
mpg2 <- mpg |>
  group_by(manufacturer) |>
  arrange(displ) |>
  ungroup()

Nu kommer mpg2 inte vara grupperad på manufacturer.

Logga in för att läsa

Som medlem har du tillgång till allt nuvarande och kommande utbildningsmaterial. Du kan följa din utveckling och få intyg på avklarade moment.