Fusionner deux trames de données avec un nombre différent de lignes dans R
-
Utilisez la fonction
full_join
pour fusionner deux trames de données R avec un nombre de lignes différent -
Utilisez la fonction
left_join
pour fusionner deux trames de données R avec un nombre différent de lignes -
Utilisez la fonction
right_join
pour fusionner deux trames de données R avec un nombre différent de lignes
Cet article présentera plusieurs méthodes de fusion de deux blocs de données avec un nombre différent de lignes dans R.
Utilisez la fonction full_join
pour fusionner deux trames de données R avec un nombre de lignes différent
full_join
fait partie du package dplyr
et peut être utilisé pour fusionner deux trames de données avec un nombre différent de lignes. La fonction utilise des trames de données à fusionner en tant que deux premiers arguments et renvoie le même type d’objet que le premier argument. Cette fonction peut fonctionner sur des types d’extension de DataFrame comme tibble
ou des trames de données paresseuses. full_join
extrait toutes les lignes et colonnes des deux arguments de la DataFrame. Il remplit les éléments avec des NA
lorsqu’il n’y a pas de valeurs correspondantes.
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
Utilisez la fonction left_join
pour fusionner deux trames de données R avec un nombre différent de lignes
left_join
est une autre méthode du paquet dplyr
. Il prend des arguments similaires à la fonction full_join
, mais left_join
extrait toutes les lignes du premier bloc de données et toutes les colonnes des deux.
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
Production:
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>
Utilisez la fonction right_join
pour fusionner deux trames de données R avec un nombre différent de lignes
right_join
fonctionne de manière similaire à la fonction left_join
, sauf qu’il extrait toutes les lignes du deuxième argument du bloc de données plutôt que du premier. La fonction copie également toutes les colonnes des deux blocs de données vers un objet nouvellement construit.
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
Production:
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