Zwei DataFrame mit unterschiedlicher Zeilenanzahl in R . zusammenführen

Jinku Hu 30 Januar 2023
  1. Verwenden Sie die Funktion full_join, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
  2. Verwenden Sie die Funktion left_join, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
  3. Verwenden Sie die Funktion right_join, um zwei R-DataFrame mit unterschiedlicher Anzahl von Zeilen zusammenzuführen
Zwei DataFrame mit unterschiedlicher Zeilenanzahl in R . zusammenfü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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - R Data Frame