Hoe u rijen kunt filteren die een bepaalde tekenreeks bevatten met behulp van dplyr


Vaak wilt u misschien rijen in een dataframe in R filteren die een bepaalde tekenreeks bevatten. Gelukkig is dit eenvoudig te doen met behulp van de functie filter() in het dplyr- pakket en de functie grepl() in Base R.

Deze tutorial toont verschillende voorbeelden van praktisch gebruik van deze functies met behulp van het volgende dataframe:

 #create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#view data frame
df

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12
5 Center 32 11

Voorbeeld 1: Filter rijen die een bepaalde string bevatten

De volgende code laat zien hoe u rijen filtert die een bepaalde tekenreeks bevatten:

 #load dplyr package
library(dplyr)

#filter rows that contain the string 'Guard' in the player column
df %>% filter ( grepl ('Guard', player))

   player points rebounds
1 P Guard 12 5
2 S Guard 15 7

Gerelateerd: Grep() en grepl() vergelijken in R: Wat is het verschil?

Voorbeeld 2: Filter rijen die ten minste één tekenreeks bevatten

De volgende code laat zien hoe je rijen filtert die ‚Bewaker‘ of ‚Vooruit‘ bevatten in de spelerskolom:

 #filter rows that contain 'Guard' or 'Forward' in the player column
df %>% filter ( grepl ('Guard|Forward', player))

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12

De volgende code laat zien hoe u rijen filtert die ‚P‘ of ‚Midden‘ bevatten in de lezerkolom:

 #filter rows that contain 'P' or 'Center' in the player column
df %>% filter ( grepl ('P|Center', player))

     player points rebounds
1 P Guard 12 5
2 P Forward 22 12
3 Center 32 11

Voorbeeld 3: Filter rijen die een bepaalde string bevatten

De volgende code laat zien hoe je rijen filtert (dwz verwijdert) die ‚Bewaker‘ bevatten in de spelerskolom:

 #filter out rows that contain 'Guard' in the player column
df %>% filter (! grepl ('Guard', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12
3 Center 32 11

De volgende code laat zien hoe je rijen filtert (dwz verwijdert) die ‚Bewaker‘ of ‚Midden‘ bevatten in de spelerskolom:

 #filter out rows that contain 'Guard' or 'Center' in the player column
df %>% filter (! grepl ('Guard|Center', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12

Meer R-tutorials vindt u hier .

Einen Kommentar hinzufügen

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