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 8

Dplyr summarise(): Summera variabler (kolumner)

Avsnitt Progress
0% färdig

Det är viktigt att kunna aggregera (sammanfatta) information från kolumnerna i en dataframe. Detta är syftet med funktionen summarise(). Funktionerna summarise() och summarize() är identiska synonymer. Dessa funktioner används i kombination med andra funktioner för att beräkna medelvärden, medianer, spridningsmått eller andra beräkningar av intresse.

Vanliga funktioner som används i kombination med summarise():

  • Centralmått: mean(), median()
  • Spridningsmått: sd(), IQR(), mad()
  • Intervaller: min(), max(), quantile()
  • Positioner: first(), last(), nth()
  • Antal: n(), n_distinct()
  • Logiska värden: any(), all()

I detta kapitel använder vi mpg data för att demonstrera dessa funktioner. Aktivera mpg data genom att aktivera tidyverse som följer:

R
# Aktivera tidyverse
library(tidyverse)

# Aktivera mpg data
data(mpg)

# Inspektera första raderna
head(mpg)
Resultat
  manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class  
1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compact
2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compact
3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compact
4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compact
5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compact
6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compact

Exempel 1: Beräkna medelvärden, standardavvikelse och interkvartilavstånd för kolumnen displ i mpg:

R
 mpg |>
  summarise(mean_displ = mean(displ, na.rm=T),
            sd_displ = sd(displ, na.rm=T),
            iqr_displ = IQR(displ, na.rm=T))
Resultat
  mean_displ sd_displ iqr_displ
        3.47     1.29       2.2

Som framgår ovan summerades mpg data till en ny dataframe med en enda rad. De nya kolumnerna utgörs av värdena vi specificerade i summarise().

Exempel 2: Använda group_by() tillsammans med summarise().

I detta exempel summerar vi samma variabler som i föregående exempel men det görs nu separat för varje biltillverkare. Notera att vi skriver ungroup() allra sist för att inaktivera grupperingen av vår dataframe.

R
mpg |>
  group_by(manufacturer) |> 
  summarise(mean_displ = mean(displ, na.rm=T),
            sd_displ = sd(displ, na.rm=T),
            iqr_displ = IQR(displ, na.rm=T))
Resultat
  manufacturer   mean_displ sd_displ iqr_displ
  audi               2.54     0.673     1.03 
  chevrolet          5.06     1.37      1.4  
  dodge              4.38     0.868     0.9  
  ford               4.54     0.541     0.600
  honda              1.71     0.145     0.2  
  hyundai            2.43     0.365     0.55 
  jeep               4.58     1.02      1.03 
  land rover         4.3      0.258     0.300
  lincoln            5.4      0         0    
  mercury            4.4      0.490     0.700
  nissan             3.27     0.864     1    
  pontiac            3.96     0.808     0    
  subaru             2.46     0.109     0    
  toyota             2.95     0.931     1.15 
  volkswagen         2.26     0.443     0.5 

Om du vill spara detta resultat i en ny dataframe bör du skriva ungroup() allra sista för att den nya dataframen inte skall ha grupperingen sparad eftersom detta kan leda till oväntade resultat. För att spara mpg data i (förslagsvis) objektet mpg2 blir koden som följer (notera ungroup() allra sist):

R
mpg2 <- mpg |>
  group_by(manufacturer) |> 
  summarise(mean_displ = mean(displ, na.rm=T),
            sd_displ = sd(displ, na.rm=T),
            iqr_displ = IQR(displ, na.rm=T)) |> 
  ungroup()

Exempel 3: Beräkna antal observationer med summarise():

Du kan använda funktionen n() för att beräkna antal observationer i varje grupp när summarise() används. Här följer samma exempel som ovan, men med tillägg av n() för att beräkna antal observationer:

R
mpg |>
  group_by(manufacturer) |> 
  summarise(n = n(),
            mean_displ = mean(displ, na.rm=T),
            sd_displ = sd(displ, na.rm=T),
            iqr_displ = IQR(displ, na.rm=T))
Resultat
manufacturer     n mean_displ sd_displ iqr_displ
audi            18       2.54    0.673     1.03 
chevrolet       19       5.06    1.37      1.4  
dodge           37       4.38    0.868     0.9  
ford            25       4.54    0.541     0.600
honda            9       1.71    0.145     0.2  
hyundai         14       2.43    0.365     0.55 
jeep             8       4.58    1.02      1.03 
land rover       4       4.3     0.258     0.300
lincoln          3       5.4     0         0    
mercury          4       4.4     0.490     0.700
nissan          13       3.27    0.864     1    
pontiac          5       3.96    0.808     0    
subaru          14       2.46    0.109     0    
toyota          34       2.95    0.931     1.15 
volkswagen      27       2.26    0.443     0.5

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.