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