Zwei DataFrame mit unterschiedlicher Zeilenanzahl in R . zusammenführen
-
Verwenden Sie die Funktion
full_join
, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen -
Verwenden Sie die Funktion
left_join
, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen -
Verwenden Sie die Funktion
right_join
, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
In diesem Artikel werden mehrere Methoden zum Zusammenführen von zwei DataFrame mit einer unterschiedlichen Anzahl von Zeilen in R demonstriert.
Verwenden Sie die Funktion full_join
, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
full_join
ist Teil des dplyr
-Pakets und kann verwendet werden, um zwei DataFrame mit einer unterschiedlichen Anzahl von Zeilen zusammenzuführen. Die Funktion nimmt die zusammenzuführenden DataFrame als die ersten beiden Argumente und gibt denselben Objekttyp wie das erste Argument zurück. Diese Funktion kann mit DataFrameerweiterungstypen wie tibble
oder Lazy-DataFrame arbeiten. full_join
extrahiert alle Zeilen und Spalten aus beiden DataFrameargumenten. Es füllt Elemente mit NA
-s, wenn es keine passenden Werte gibt.
library(dplyr)
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
df1 <- data.frame(v1, v2)
v1 <- c(9.1, 9.2, 9.3, 9.1, 9.2, 9.3, 9.3, 9.2, 9.1)
v2 <- c(101, 102, 103, 201, 202, 203, 204, 403, 404)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri", "Mon", "Tue", "Wed"))
df2 <- data.frame(v1, v2, wday)
dff <- df1 %>% full_join(df2)
dff
v1 v2 wday
1 1.1 11 <NA>
2 1.2 12 <NA>
3 1.3 13 <NA>
4 2.1 21 <NA>
5 2.2 22 <NA>
6 2.3 23 <NA>
7 9.1 101 Wed
8 9.2 102 Thu
9 9.3 103 Mon
10 9.1 201 Wed
11 9.2 202 Thu
12 9.3 203 Fri
13 9.3 204 Mon
14 9.2 403 Tue
15 9.1 404 Wed
Verwenden Sie die Funktion left_join
, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
left_join
ist eine weitere Methode aus dem dplyr
-Paket. Sie benötigt ähnliche Argumente wie die Funktion full_join
, aber left_join
extrahiert alle Zeilen aus dem ersten DataFrame und alle Spalten aus beiden.
library(dplyr)
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
df1 <- data.frame(v1, v2)
v1 <- c(9.1, 9.2, 9.3, 9.1, 9.2, 9.3, 9.3, 9.2, 9.1)
v2 <- c(101, 102, 103, 201, 202, 203, 204, 403, 404)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri", "Mon", "Tue", "Wed"))
df2 <- data.frame(v1, v2, wday)
dfl <- df1 %>% left_join(df2)
dfl
Ausgabe:
v1 v2 wday
1 1.1 11 <NA>
2 1.2 12 <NA>
3 1.3 13 <NA>
4 2.1 21 <NA>
5 2.2 22 <NA>
6 2.3 23 <NA>
Verwenden Sie die Funktion right_join
, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
right_join
funktioniert ähnlich wie die left_join
-Funktion, außer dass alle Zeilen aus dem zweiten DataFrameargument extrahiert werden und nicht aus dem ersten. Die Funktion kopiert auch alle Spalten aus beiden DataFrame in ein neu konstruiertes Objekt.
library(dplyr)
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
df1 <- data.frame(v1, v2)
v1 <- c(9.1, 9.2, 9.3, 9.1, 9.2, 9.3, 9.3, 9.2, 9.1)
v2 <- c(101, 102, 103, 201, 202, 203, 204, 403, 404)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri", "Mon", "Tue", "Wed"))
df2 <- data.frame(v1, v2, wday)
dfr <- df1 %>% right_join(df2)
dfr
Ausgabe:
v1 v2 wday
1 9.1 101 Wed
2 9.2 102 Thu
3 9.3 103 Mon
4 9.1 201 Wed
5 9.2 202 Thu
6 9.3 203 Fri
7 9.3 204 Mon
8 9.2 403 Tue
9 9.1 404 Wed
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook