So filtern sie zeilen, die eine bestimmte zeichenfolge enthalten, mit dplyr


Häufig möchten Sie möglicherweise Zeilen in einem Datenrahmen in R filtern, die eine bestimmte Zeichenfolge enthalten. Glücklicherweise ist dies mit der Funktion filter() im dplyr- Paket und der Funktion grepl() in Base R einfach zu bewerkstelligen.

Dieses Tutorial zeigt mehrere Beispiele für die praktische Verwendung dieser Funktionen anhand des folgenden Datenrahmens:

 #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

Beispiel 1: Zeilen filtern, die eine bestimmte Zeichenfolge enthalten

Der folgende Code zeigt, wie Zeilen gefiltert werden, die eine bestimmte Zeichenfolge enthalten:

 #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

Verwandt: Vergleich von grep() und grepl() in R: Was ist der Unterschied?

Beispiel 2: Zeilen filtern, die mindestens eine Zeichenfolge enthalten

Der folgende Code zeigt, wie Zeilen gefiltert werden, die „Guard“ oder „Forward“ in der Spielerspalte enthalten:

 #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

Der folgende Code zeigt, wie Zeilen gefiltert werden, die „P“ oder „Center“ in der Leserspalte enthalten:

 #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

Beispiel 3: Zeilen filtern, die eine bestimmte Zeichenfolge enthalten

Der folgende Code zeigt, wie Zeilen gefiltert (d. h. entfernt) werden, die „Guard“ in der Player-Spalte enthalten:

 #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

Der folgende Code zeigt, wie man Zeilen filtert (d. h. entfernt), die „Guard“ oder „Center“ in der Player-Spalte enthalten:

 #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

Weitere R-Tutorials finden Sie hier .

Einen Kommentar hinzufügen

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