So führen sie mehrere datenrahmen in r zusammen (mit beispielen)
Sie können eine von zwei Methoden verwenden, um mehrere Datenrahmen in R zusammenzuführen:
Methode 1: Verwenden Sie Base R
#put all data frames into list
df_list <- list(df1, df2, df3)
#merge all data frames into list
Reduce(function(x, y) merge(x, y, all= TRUE ), df_list)
Methode 2: Verwenden Sie Tidyverse
library (tidyverse)
#put all data frames into list
df_list <- list(df1, df2, df3)
#merge all data frames into list
df_list %>% reduce(full_join, by=' variable_name ')
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.
Methode 1: Mehrere Datenrahmen mit Base R zusammenführen
Angenommen, wir haben die folgenden Datenrahmen in R:
#define data frames
df1 <- data. frame (id=c(1, 2, 3, 4, 5),
revenue=c(34, 36, 40, 49, 43))
df2 <- data. frame (id=c(1, 2, 5, 6, 7),
expenses=c(22, 26, 31, 40, 20))
df3 <- data. frame (id=c(1, 2, 4, 5, 7),
profit=c(12, 10, 14, 12, 9))
Wir können die folgende Syntax verwenden, um alle Datenrahmen mithilfe von R-Basisfunktionen zusammenzuführen:
#put all data frames into list
df_list <- list(df1, df2, df3)
#merge all data frames together
Reduce(function(x, y) merge(x, y, all= TRUE ), df_list)
id revenue expenses profit
1 1 34 22 12
2 2 36 26 10
3 3 40 NA NA
4 4 49 NA 14
5 5 43 31 12
6 6 NA 40 NA
7 7 NA 20 9
Beachten Sie, dass jeder der „id“-Werte aus jedem ursprünglichen Datenblock im endgültigen Datenblock enthalten ist.
Methode 2: Mehrere Datenrahmen mit Tidyverse zusammenführen
Angenommen, wir haben die folgenden Datenrahmen in R:
#define data frames
df1 <- data. frame (id=c(1, 2, 3, 4, 5),
revenue=c(34, 36, 40, 49, 43))
df2 <- data. frame (id=c(1, 2, 5, 6, 7),
expenses=c(22, 26, 31, 40, 20))
df3 <- data. frame (id=c(1, 2, 4, 5, 7),
profit=c(12, 10, 14, 12, 9))
Wir können die folgende Syntax verwenden, um alle Datenrahmen mithilfe von Funktionen von Tidyverse zusammenzuführen – einer Sammlung von Paketen, die für die Datenwissenschaft in R entwickelt wurden:
library (tidyverse)
#put all data frames into list
df_list <- list(df1, df2, df3)
#merge all data frames together
df_list %>% reduce(full_join, by=' id ')
id revenue expenses profit
1 1 34 22 12
2 2 36 26 10
3 3 40 NA NA
4 4 49 NA 14
5 5 43 31 12
6 6 NA 40 NA
7 7 NA 20 9
Beachten Sie, dass der endgültige Datenrahmen mit dem Datenrahmen übereinstimmt, den wir mit der ersten Methode erstellt haben.
Hinweis : Der Tidyverse-Ansatz ist deutlich schneller, wenn Sie mit extrem großen Datenrahmen arbeiten.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere allgemeine Funktionen in R ausführen:
So führen Sie Datenrahmen basierend auf mehreren Spalten in R zusammen
So stapeln Sie Datenrahmenspalten in R
So verwenden Sie anti_join in R