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 .