Gegevens groeperen en filteren met dplyr
U kunt de volgende basissyntaxis gebruiken om gegevens te groeperen en filteren met behulp van het dplyr-pakket in R:
df %>% group_by(team) %>% filter(any(points = = 10 ))
Deze specifieke syntaxis groepeert een dataframe per kolom genaamd team en filtert alleen groepen waarbij ten minste één waarde in de puntenkolom gelijk is aan 10.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Groepeer op en filter gegevens met behulp van dplyr
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', 'B', 'B', 'B', 'C', 'C', 'C'),
points=c(10, 15, 8, 4, 10, 10, 12, 12, 7))
#view data frame
df
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7
We kunnen de volgende code gebruiken om het dataframe te groeperen op basis van de waarde in de kolom Team en vervolgens alle groepen eruit te filteren die niet ten minste één waarde in de kolom Punten hebben die gelijk is aan 10:
library (dplyr)
#group by team and filter out teams where no points value is equal to 10
df %>%
group_by(team) %>%
filter(any(points == 10 ))
# A tibble: 6 x 2
# Groups: team [2]
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
Houd er rekening mee dat alle rijen waarin team gelijk is aan „C“ worden gefilterd omdat er geen waarde in de puntenkolom staat voor team „C“ gelijk aan 10.
Houd er rekening mee dat dit slechts een voorbeeld is van een filter dat we kunnen toepassen.
We zouden bijvoorbeeld een ander filter kunnen toepassen waarin we teams filteren met minimaal één waarde in de puntenkolom groter dan 13:
library (dplyr)
#group by team and filter out teams where no points value is greater than 13
df %>%
group_by(team) %>%
filter(any(points > 13 ))
# A tibble: 3 x 2
# Groups: team [1]
team points
1 to 10
2 to 15
3 to 8
Merk op dat alleen lijnen waar het team gelijk is aan „A“ worden behouden, aangezien dit het enige team is met ten minste één puntwaarde groter dan 13.
Opmerking : u kunt hier de volledige documentatie van de filterfunctie in dplyr vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in dplyr uitvoert:
Hoe u de eerste rij per groep selecteert met dplyr
Hoe u op meerdere voorwaarden kunt filteren met behulp van dplyr
Hoe u rijen kunt filteren die een bepaalde tekenreeks bevatten met behulp van dplyr