A: hoe u %in% kunt gebruiken om rijen met een waarde in de lijst te filteren
U kunt de volgende basissyntaxis gebruiken met de operator %in% in R om rijen te filteren die een waarde in een lijst bevatten:
library (dplyr) #specify team names to keep team_names <- c(' Mavs ', ' Pacers ', ' Nets ') #select all rows where team is in list of team names to keep df_new <- df %>% filter(team %in% team_names)
Deze specifieke syntaxis filtert een dataframe om alleen rijen te behouden waarvan de waarde van de teamkolom gelijk is aan een van de drie waarden van de team_names- vector die we hebben opgegeven.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: %in% gebruiken om rijen met een waarde in de lijst te filteren
Stel dat we het volgende gegevensframe in R hebben dat informatie bevat over verschillende basketbalteams:
#create data frame
df <- data. frame (team=c('Mavs', 'Pacers', 'Mavs', 'Celtics', 'Nets', 'Pacers'),
points=c(104, 110, 134, 125, 114, 124),
assists=c(22, 30, 35, 35, 20, 27))
#view data frame
df
team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Celtics 125 35
5 Nets 114 20
6 Pacers 124 27
Stel dat we het dataframe zo willen filteren dat het alleen rijen bevat waarvan de waarde in de teamkolom gelijk is aan een van de volgende teamnamen:
- Mav
- Pacers
- Netten
We kunnen hiervoor de volgende syntaxis gebruiken met de %in% operator:
library (dplyr) #specify team names to keep team_names <- c(' Mavs ', ' Pacers ', ' Nets ') #select all rows where team is in list of team names to keep df_new <- df %>% filter(team %in% team_names) #view updated data frame df_new team points assists 1 Mavs 104 22 2 Pacers 110 30 3 Mavs 134 35 4 Nets 114 20 5 Pacers 124 27
Houd er rekening mee dat alleen rijen met een Mavs-, Pacers- of Nets-waarde in de teamkolom worden bewaard.
Als u rijen wilt filteren waarin de teamnaam niet in een lijst met teamnamen voorkomt, voegt u eenvoudigweg een uitroepteken ( ! ) toe vóór de kolomnaam:
library (dplyr) #specify team names to not keep team_names <- c(' Mavs ', ' Pacers ', ' Nets ') #select all rows where team is not in list of team names to keep df_new <- df %>% filter( ! team %in% team_names) #view updated data frame df_new team points assists 1 Celtics 125 35
Houd er rekening mee dat alleen rijen waarvan de waarde niet gelijk is aan Mavs, Pacers of Nets in de teamkolom worden bewaard.
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