Hoe relatieve frequenties te berekenen met behulp van dplyr
Vaak wilt u misschien de relatieve frequenties/verhoudingen van waarden in een of meer kolommen van een dataframe in R berekenen.
Gelukkig is dit eenvoudig te doen met behulp van functies in het dplyr- pakket. Deze tutorial laat zien hoe u deze functies kunt gebruiken om relatieve frequenties op het volgende dataframe te berekenen:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 32, 34, 39)) #view data frame df team position points 1 AG 12 2 AF15 3 FY 19 4 BG 22 5 BG 32 6 BG 34 7 BF 39
Voorbeeld 1: Relatieve frequentie van een variabele
De volgende code laat zien hoe u de relatieve frequentie van elk team in het dataframe berekent:
library(dplyr) df %>% group_by (team) %>% summarize (n = n()) %>% mutate (freq = n / sum(n)) # A tibble: 2 x 3 team n freq 1 to 3 0.429 2 B 4 0.571
Dit vertelt ons dat team A 42,9% van alle rijen in het dataframe voor zijn rekening neemt, terwijl team B de resterende 57,1% van de rijen voor zijn rekening neemt. Merk op dat ze samen optellen tot 100%.
Gerelateerd:De complete gids: gegevens groeperen en samenvatten in R
Voorbeeld 2: Relatieve frequentie van verschillende variabelen
De volgende code laat zien hoe u de relatieve frequentie van posities per team kunt berekenen:
library(dplyr) df %>% group_by (team, position) %>% summarize (n = n()) %>% mutate (freq = n / sum(n)) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 AF 2 0.667 2 AG 1 0.333 3 BF 1 0.250 4 BG 3 0.750
Dit vertelt ons dat:
- 66,7% van de spelers van team A bevindt zich in positie F.
- 33,3% van de spelers van team A bevindt zich in positie G.
- 25,0% van de spelers van team A bevindt zich in positie F.
- 75,0% van de spelers van team B bevindt zich in de G-positie.
Gerelateerd: Muteren gebruiken om nieuwe variabelen te maken in R
Voorbeeld 3: Geef relatieve frequenties weer als percentages
De volgende code laat zien hoe u de relatieve frequentie van posities per team kunt berekenen en hoe u deze relatieve frequenties als percentages kunt weergeven:
library(dplyr) df %>% group_by (team, position) %>% summarize (n = n()) %>% mutate (freq = paste0(round(100 * n/sum(n), 0), ' % ')) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 AF 2 67% 2 GA 1 33% 3 BF 1 25% 4 BG 3 75%
Meer R-tutorials vindt u hier .