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:
# Aktivera tidyverse
library(tidyverse)
# Aktivera mpg data
data(mpg)
# Inspektera första raderna
head(mpg)
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:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
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.
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
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):
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
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:
BLOCKERAD KOD, BILD ELLER TEXT
Du måste logga in för att komma åt allt material.
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