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

Einen Kommentar hinzufügen

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