A: groeperen op en tellen met conditie
U kunt de volgende basissyntaxis gebruiken om een groeperings- en telvoorwaarde uit te voeren in R:
library (dplyr) df %>% group_by(var1) %>% summarize(count = sum(var2 == ' val '))
Deze specifieke syntaxis groepeert de regels van het dataframe op basis van var1 en telt vervolgens het aantal regels waarbij var2 gelijk is aan „val“.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: groepeer op en tel met een voorwaarde in R
Stel dat we het volgende dataframe in R hebben dat informatie bevat over verschillende basketbalspelers:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), pos=c('Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) #view data frame df team pos points 1 A Gu 18 2 A Fo 22 3 A Fo 19 4 A Fo 14 5 B Gu 14 6 B Gu 11 7 B Fo 20 8 B Fo 28
De volgende code laat zien hoe u het dataframe kunt groeperen op teamvariabele en het aantal rijen kunt tellen waarin de pos- variabele gelijk is aan „Gu“:
library (dplyr)
#group by team and count rows where pos is 'Gu'
df %>%
group_by(team) %>%
summarize(count = sum(pos == ' Gu '))
# A tibble: 2 x 2
team count
1 to 1
2 B 2
Uit het resultaat kunnen we zien:
- Team A heeft 1 rij waarbij de pos-kolom gelijk is aan “Gu”
- Team B heeft 2 rijen waarbij de pos-kolom gelijk is aan “Gu”
We kunnen een vergelijkbare syntaxis gebruiken om te groeperen en te tellen met een getalsvoorwaarde.
De volgende code laat bijvoorbeeld zien hoe u kunt groeperen op teamvariabele en het aantal rijen kunt tellen waarin de puntenvariabele groter is dan 15:
library (dplyr)
#group by team and count rows where pos is 'Gu'
df %>%
group_by(team) %>%
summarize(count = sum(points > 15 ))
# A tibble: 2 x 2
team count
1 to 3
2 B 2
Uit het resultaat kunnen we zien:
- Team A heeft 3 lijnen waarbij de puntenkolom groter is dan 15
- Team B heeft 2 lijnen waarbij de puntenkolom groter is dan 15
U kunt een vergelijkbare syntaxis gebruiken om te groeperen en te tellen met elke gewenste specifieke voorwaarde.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe waarden te tellen in een kolom met voorwaarde in R
Hoe u de eerste N-waarden per groep in R selecteert