Como juntar vários frames de dados usando dplyr
Freqüentemente, você pode estar interessado em unir vários quadros de dados em R. Felizmente, isso é fácil de fazer usando a função left_join() do pacote dplyr .
library(dplyr)
Por exemplo, suponha que temos os três quadros de dados a seguir:
#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))
Para unir os três quadros de dados, podemos simplesmente fazer duas junções à esquerda, uma após a outra:
#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
Observe que você também pode salvar o resultado dessa junção como um quadro de dados:
#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
Recursos adicionais
Como filtrar linhas em R
Como remover linhas duplicadas em R
Como agrupar e resumir dados em R