So verwenden sie einen bedingten filter in dplyr
Sie können die folgende grundlegende Syntax verwenden, um mithilfe von Funktionen im dplyr- Paket in R einen bedingten Filter auf einen Datenrahmen anzuwenden:
library (dplyr) #filter data frame where points is greater than some value (based on team) df %>% filter(case_when(team==' A ' ~ points > 15, team==' B ' ~ points > 20, TRUE ~ points > 30))
In diesem speziellen Beispiel werden Zeilen in einem Datenrahmen gefiltert, in denen der Wert der Punktespalte größer als ein bestimmter Wert ist, abhängig vom Wert der Teamspalte .
Verwandt: Eine Einführung in case_when() in dplyr
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: So verwenden Sie einen bedingten Filter in dplyr
Angenommen, wir haben den folgenden Datenrahmen in R, der Informationen über verschiedene Basketballspieler enthält:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'), points=c(10, 12, 17, 18, 24, 29, 29, 34, 35)) #view data frame df team points 1 to 10 2 to 12 3 to 17 4 B 18 5 B 24 6 B 29 7 C 29 8 C 34 9 C 35
Nehmen wir nun an, wir möchten den folgenden bedingten Filter anwenden:
- Halten Sie nur Linien für Spieler von Team A ein, deren Punkte mehr als 15 betragen.
- Halten Sie Linien nur für Spieler von Team B ein, deren Punktezahl mehr als 20 beträgt.
- Halten Sie Linien nur für Spieler von Team C ein, deren Punkte über 30 liegen.
Wir können die Funktionen filter() und case_when() aus dem dplyr- Paket verwenden, um diesen bedingten Filter auf den Datenrahmen anzuwenden:
library (dplyr) #filter data frame where points is greater than some value (based on team) df %>% filter(case_when(team==' A ' ~ points > 15, team==' B ' ~ points > 20, TRUE ~ points > 30)) team points 1 to 17 2 B 24 3 B 29 4 C 34 5 C 35
Zeilen im Datenrahmen werden jetzt gefiltert, wenn der Wert in der Punktespalte größer als ein bestimmter Wert ist, abhängig vom Wert in der Teamspalte .
Hinweis Nr. 1 : In der Funktion case_when() verwenden wir TRUE im letzten Argument, um alle Werte in der Teamspalte darzustellen, die nicht gleich „A“ oder „B“ sind.
Hinweis Nr. 2 : Die vollständige Dokumentation für die Funktion dplyr case_when() finden Sie hier .
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere allgemeine Funktionen in dplyr ausführen:
So filtern Sie mit dplyr nach Zeilennummer
So filtern Sie mit dplyr nach mehreren Bedingungen
So verwenden Sie einen „nicht enthaltenen“ Filter in dplyr