So fassen sie mehrere spalten mit dplyr zusammen


Mit dplyr können Sie die folgenden Methoden verwenden, um mehrere Spalten in einem Datenrahmen zusammenzufassen:

Methode 1: Fassen Sie alle Spalten zusammen

 #summarize mean of all columns
df %>%
  group_by(group_var) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

Methode 2: Bestimmte Spalten zusammenfassen

 #summarize mean of col1 and col2 only
df %>%
  group_by(group_var) %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

Methode 3: Alle numerischen Spalten zusammenfassen

 #summarize mean and standard deviation of all numeric columns
df %>%
  group_by(group_var) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

Die folgenden Beispiele zeigen, wie jede Methode mit dem folgenden Datenrahmen verwendet wird:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 86, 88, 95, 90),
                 assists=c(33, 28, 31, 39, 34, 25),
                 rebounds=c(NA, 28, 24, 24, 28, 19))

#view data frame
df

  team points assists rebounds
1 A 99 33 NA
2 A 90 28 28
3 A 86 31 24
4 B 88 39 24
5 B 95 34 28
6 B 90 25 19

Beispiel 1: Alle Spalten zusammenfassen

Der folgende Code zeigt, wie der Durchschnitt aller Spalten zusammengefasst wird:

 library (dplyr)

#summarize mean of all columns, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

# A tibble: 2 x 4
  team points assists rebounds
           
1 A 91.7 30.7 26  
2 B 91 32.7 23.7

Beispiel 2: Bestimmte Spalten zusammenfassen

Der folgende Code zeigt, wie der Durchschnitt nur der Spalten „Punkte “ und „Rebounds“ zusammengefasst wird:

 library (dplyr)

#summarize mean of points and rebounds, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

# A tibble: 2 x 3
  team points rebounds
        
1 A 91.7 26  
2 B 91 23.7

Beispiel 3: Fassen Sie alle numerischen Spalten zusammen

Der folgende Code zeigt, wie der Mittelwert und die Standardabweichung aller numerischen Spalten im Datenrahmen zusammengefasst werden:

 library (dplyr)

#summarize mean and standard deviation of all numeric columns
df %>%
  group_by(team) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

# A tibble: 2 x 7
  team points_mean points_sd assists_mean assists_sd rebounds_mean rebounds_sd
                                            
1 A 91.7 6.66 30.7 2.52 26 2.83
2 B 91 3.61 32.7 7.09 23.7 4.51

Die Ausgabe zeigt den Mittelwert und die Standardabweichung aller numerischen Variablen im Datenrahmen an.

Beachten Sie, dass wir in diesem Beispiel die Funktion list() verwendet haben, um mehrere zusammenfassende Statistiken aufzulisten, die wir berechnen wollten.

Hinweis : In jedem Beispiel haben wir die Funktion dplyr across() verwendet. Die vollständige Dokumentation zu dieser Funktion finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie mit dplyr weitere gängige Funktionen ausführen:

So löschen Sie Zeilen mit dplyr
So ordnen Sie Zeilen mit dplyr an
So filtern Sie mit dplyr nach mehreren Bedingungen

Einen Kommentar hinzufügen

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