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 .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert