Dplyr: so fassen sie daten zusammen, behalten aber alle spalten bei
Wenn Sie die Funktion „summarise()“ in dplyr verwenden, werden alle Variablen, die nicht in den Funktionen „summarise()“ oder „group_by()“ enthalten sind, automatisch entfernt.
Sie können jedoch die Funktion mutate() verwenden, um die Daten zusammenzufassen und dabei alle Spalten im Datenrahmen beizubehalten.
Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.
Beispiel: Daten zusammenfassen, aber alle Spalten mit dplyr beibehalten
Angenommen, wir haben den folgenden Datenrahmen, der Informationen über verschiedene Basketballspieler enthält:
#create data frame df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ), points=c(4, 9, 8, 12, 15, 14, 29, 30, 22), assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12)) #view data frame df team points assists 1 to 4 3 2 to 9 3 3 to 8 2 4 B 12 5 5 B 15 8 6 B 14 10 7 C 29 4 8 C 30 5 9 C 22 12
Wir können die folgende Syntax verwenden, um die durchschnittlich erzielten Punkte pro Team zusammenzufassen:
library (dplyr) #summarize mean points values by team df %>% group_by(team) %>% summarize(mean_pts = mean(points)) # A tibble: 3 x 2 team mean_pts 1 to 7 2 B 13.7 3 C 27
Die Spalte „ Mean_pts“ zeigt die durchschnittlichen Punkte an, die jedes Team erzielt hat.
Aus dem Ergebnis können wir sehen:
- Die durchschnittliche Punktzahl der Spieler von Team A beträgt 7 .
- Die durchschnittliche Punktzahl der Spieler der Mannschaft B beträgt 13,7 .
- Die durchschnittliche Punktzahl der Spieler von Team C beträgt 27 .
Nehmen wir jedoch an, wir möchten alle anderen Spalten aus dem ursprünglichen Datenrahmen behalten.
Dazu können wir die folgende Syntax mit der Funktion mutate() verwenden:
library (dplyr) #summarize mean points values by team and keep all columns df %>% group_by(team) %>% mutate(mean_pts = mean(points)) %>% A group() # A tibble: 9 x 4 team points assists mean_pts 1 to 4 3 7 2 to 9 3 7 3 to 8 2 7 4 B 12 5 13.7 5 B 15 8 13.7 6 B 14 10 13.7 7 C 29 4 27 8 C 30 5 27 9 C 22 12 27
Mit der Funktion mutate() können wir eine neue Spalte namens „Mean_pts“ erstellen, die die durchschnittlich erzielten Punkte pro Team zusammenfasst, während alle anderen Spalten aus dem ursprünglichen Datenrahmen beibehalten werden.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in dplyr ausführen:
dplyr: So mutieren Sie eine Variable, wenn die Spalte eine Zeichenfolge enthält
dplyr: So ändern Sie Faktorstufen mit mutate()
dplyr: So fügen Sie mehrere Spalten hinzu