Hoe u een frequentietabel per groep maakt in r


U kunt de volgende functies uit het dplyr- pakket gebruiken om een frequentietabel per groep in R te maken:

 library (dplyr)

df %>%
  group_by (var1, var2) %>%
  summarize (Freq=n())

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Maak een frequentietabel per groep

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', 'G', 'F', 'G', 'F', 'F', 'C'))

#view data frame
df

  team position
1 AG
2 AG
3 AG
4 AF
5 BG
6 BF
7 BF
8 BC

Laten we zeggen dat we een frequentietabel willen maken die de frequentie van elke positie weergeeft, gegroepeerd per team.

We kunnen hiervoor de volgende syntaxis gebruiken:

 library (dplyr)

#calculate frequency of position, grouped by team
df %>%
group_by (team, position) %>%
summarize (Freq=n())

# A tibble: 5 x 3
# Groups: team [2]
  team position Freq
       
1 AF 1
2 AG 3
3 BC 1
4 BF 2
5 BG 1

Zo interpreteert u het resultaat:

  • 1 speler van team A bezet positie “F”
  • 3 spelers van team A hebben positie ‚G‘
  • 1 speler van team B bezet positie “C”
  • 2 spelers van team B hebben positie ‚F‘
  • 1 speler van team B bezet positie “G”

Merk op dat we de kolom die de frequenties bevat, kunnen hernoemen door de naam van de variabele in de functie summary() te wijzigen.

We zouden bijvoorbeeld de kolom ‚count‘ kunnen hernoemen:

 library (dplyr)

#calculate frequency of position, grouped by team
df %>%
  group_by (team, position) %>%
  summarize (count=n())

# A tibble: 5 x 3
# Groups: team [2]
  team position count
       
1 AF 1
2 AG 3
3 BC 1
4 BF 2
5 BG 1

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
Variabelen sorteren op groep met dplyr
Kolommen selecteren op index met behulp van dplyr

Einen Kommentar hinzufügen

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