So gruppieren und filtern sie daten mit dplyr


Sie können die folgende grundlegende Syntax verwenden, um Daten mithilfe des dplyr-Pakets in R zu gruppieren und zu filtern:

 df %>%
  group_by(team) %>%
  filter(any(points = = 10 ))

Diese spezielle Syntax gruppiert einen Datenrahmen pro Spalte namens Team und filtert nur Gruppen, bei denen mindestens ein Wert in der Punktespalte gleich 10 ist.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Daten mit dplyr gruppieren und filtern

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, 15, 8, 4, 10, 10, 12, 12, 7))

#view data frame
df

  team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7

Wir können den folgenden Code verwenden, um den Datenrahmen nach dem Wert in der Spalte „ Team“ zu gruppieren und dann alle Gruppen herauszufiltern, die nicht mindestens einen Wert in der Spalte „Punkte“ von 10 haben:

 library (dplyr)

#group by team and filter out teams where no points value is equal to 10
df %>%
  group_by(team) %>%
  filter(any(points == 10 ))

# A tibble: 6 x 2
# Groups: team [2]
  team points
    
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10

Beachten Sie, dass alle Zeilen, in denen Team den Wert „C“ hat, gefiltert werden, da in der Punktespalte für Team „C“ kein Wert gleich 10 vorhanden ist.

Beachten Sie, dass dies nur ein Beispiel für einen Filter ist, den wir anwenden könnten.

Beispielsweise könnten wir einen weiteren Filter anwenden, bei dem wir Teams filtern, deren Punktespalte mindestens einen Wert größer als 13 aufweist:

 library (dplyr)

#group by team and filter out teams where no points value is greater than 13
df %>%
  group_by(team) %>%
  filter(any(points > 13 ))

# A tibble: 3 x 2
# Groups: team [1]
  team points
    
1 to 10
2 to 15
3 to 8

Beachten Sie, dass nur Zeilen beibehalten werden, in denen das Team gleich „A“ ist, da es das einzige Team mit mindestens einem Punktwert größer als 13 ist.

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

Einen Kommentar hinzufügen

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