Hoe u meerdere dataframes kunt samenvoegen met behulp van dplyr


Vaak ben je misschien geïnteresseerd in het samenvoegen van meerdere dataframes in R. Gelukkig is dit eenvoudig te doen met behulp van de functie left_join() uit het dplyr- pakket.

 library(dplyr)

Stel dat we bijvoorbeeld de volgende drie dataframes hebben:

 #create data frame
df1 <- data.frame(a = c('a', 'b', 'c', 'd', 'e', 'f'),
                  b = c(12, 14, 14, 18, 22, 23))

df2 <- data.frame(a = c('a', 'a', 'a', 'b', 'b', 'b'),
                  c = c(23, 24, 33, 34, 37, 41))

df3 <- data.frame(a = c('d', 'e', 'f', 'g', 'h', 'i'),
                  d = c(23, 24, 33, 34, 37, 41))

Om de drie dataframes samen te voegen, kunnen we eenvoudigweg twee linkse joins achter elkaar doen:

 #join the three data frames
df1 %>%
    left_join (df2, by='a') %>%
    left_join (df3, by='a')

   abcd
1 to 12 23 NA
2 to 12 24 NA
3 to 12 33 NA
4 b 14 34 NA
5 b 14 37 NA
6 b 14 41 NA
7 c 14 NA NA
8 d 18 NA 23
9th 22 NA 24
10 f 23 NA 33

Merk op dat u het resultaat van deze join ook als een dataframe kunt opslaan:

 #join the three data frames and save result as new data frame named all_data
all_data <- df1 %>%
              left_join (df2, by='a') %>%
              left_join (df3, by='a')

#view summary of resulting data frame
glimpse(all_data)

Comments: 10
Variables: 4
$ a <chr> "a", "a", "a", "b", "b", "b", "c", "d", "e", "f"
$b<dbl> 12, 12, 12, 14, 14, 14, 14, 18, 22, 23
$ c <dbl> 23, 24, 33, 34, 37, 41, NA, NA, NA, NA
$ d <dbl> NA, NA, NA, NA, NA, NA, NA, 23, 24, 33

Aanvullende bronnen

Rijen filteren in R
Hoe dubbele regels in R te verwijderen
Gegevens groeperen en samenvatten in R

Einen Kommentar hinzufügen

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