A: so verwenden sie %in%, um zeilen mit einem wert in der liste zu filtern
Sie können die folgende grundlegende Syntax mit dem %in% -Operator in R verwenden, um Zeilen zu filtern, die einen Wert in einer Liste enthalten:
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)
Diese spezielle Syntax filtert einen Datenrahmen, um nur Zeilen beizubehalten, in denen der Wert der Teamspalte einem der drei Werte des von uns angegebenen Vektors team_names entspricht.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Verwendung von %in% zum Filtern von Zeilen mit einem Wert in der Liste
Angenommen, wir haben den folgenden Datenrahmen in R, der Informationen über verschiedene Basketballteams enthält:
#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
Nehmen wir an, wir möchten den Datenrahmen so filtern, dass er nur Zeilen enthält, deren Wert in der Teamspalte einem der folgenden Teamnamen entspricht:
- Mavs
- Schrittmacher
- Netze
Dazu können wir die folgende Syntax mit dem %in% -Operator verwenden:
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
Beachten Sie, dass nur Zeilen mit einem Mavs-, Pacers- oder Nets-Wert in der Teamspalte beibehalten werden.
Wenn Sie Zeilen filtern möchten, in denen der Teamname nicht in einer Liste mit Teamnamen enthalten ist, fügen Sie einfach ein Ausrufezeichen ( ! ) vor dem Spaltennamen hinzu:
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
Beachten Sie, dass nur Zeilen beibehalten werden, deren Wert nicht Mavs, Pacers oder Nets in der Teamspalte entspricht .
Hinweis : Die vollständige Dokumentation der Filterfunktion in dplyr finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in dplyr ausführen:
So wählen Sie mit dplyr die erste Zeile nach Gruppe aus
So filtern Sie mit dplyr nach mehreren Bedingungen
So filtern Sie Zeilen, die eine bestimmte Zeichenfolge enthalten, mit dplyr