Een kruistabel maken met dplyr (met voorbeelden)
U kunt de volgende basissyntaxis gebruiken om een kruistabel te maken met behulp van functies uit de pakketten dplyr en Tidyr in R:
df %>% group_by (var1, v ar2) %>% tally () %>% spread (var1,n)
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld 1: Maak een eenvoudige kruistabel
Stel dat we het volgende dataframe in R hebben:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'), dots=c(7, 7, 8, 11, 13, 15, 19, 13)) #view data frame df team position points 1 AG 7 2 AG 7 3AF 8 4 AC 11 5 BG 13 6 BF 15 7 BF 19 8 BC 13
We kunnen de volgende syntaxis gebruiken om een kruistabel te maken voor de variabelen ‚team‘ en ‚positie‘:
library (dplyr) library (tidyr) #produce crosstab df %>% group_by (team, position) %>% tally () %>% spread (team, n) # A tibble: 3 x 3 position AB 1 C 1 1 2 F 1 2 3 G 2 1
Zo interpreteert u de kruistabelwaarden:
- Er is 1 speler die positie “C” bezet en tot team “A” behoort
- Er is 1 speler die positie “C” bezet en tot team “B” behoort
- Er is 1 speler die positie “F” bezet en tot team “A” behoort
- Er zijn 2 spelers die positie “F” hebben en tot team “B” behoren
- Er zijn 2 spelers die positie “G” hebben en tot team “A” behoren
- Er is 1 speler die positie “G” bezet en tot team “B” behoort
Houd er rekening mee dat we de rijen en kolommen van de kruistabel kunnen wijzigen door de variabele te wijzigen die wordt gebruikt in de functie spread() :
library (dplyr) library (tidyr) #produce crosstab with 'position' along columns df %>% group_by (team, position) %>% tally () %>% spread (position, n) # A tibble: 2 x 4 # Groups: team [2] team CFG 1 A 1 1 2 2 B 1 2 1
Gerelateerd: Hoe de Spread-functie in Tidyr te gebruiken
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in dplyr kunt uitvoeren:
Hoe relatieve frequenties te berekenen met behulp van dplyr
Kolommen selecteren op index met behulp van dplyr
Rijen verwijderen met dplyr