Join de mais de um data frame

Olá, pessoal. Estou começando no R e tenho uma dúvida…

Tenho 4 data frames para importar, todos eles tem duas colunas, sendo uma delas comum a todos. Como faço para colar todas as colunas diferentes em uma tabela só sem ter que repetir a que é igual?

Oi Ana! Tudo bem?

Existem funções do pacote dplyr que terminam com _join, e servem para unir bases de dados. Fiz um exemplo simples onde eu faço a união de 4 data frames. Nesse exemplo, eu usei a função full_join(), mas existem outros tipos também (esse vídeo fala disso! Joins: juntando bases de dados (com a Beatriz Milz) - YouTube )

O importante é identificar qual é a coluna em comum, e a unidade de análise! Pelo que entendi na sua mensagem, você já sabe qual é essa coluna em comum, então é necessário usar alguma função _join para unir. Segue o exemplo:

# carregar o pipe
library(magrittr, include.only = "%>%")

# criar 4 data frames de exemplo
df_nome <- tibble::tribble(
  ~id, ~nome,
  1, "Beatriz",
  2, "Ana",
  3, "Maria"
)


df_idade <- tibble::tribble(
  ~id, ~idade,
  1, 28,
  2, 30,
  3, 25
)

df_cidade <- tibble::tribble(
  ~id, ~cidade,
  1, "São Paulo",
  2, "Niterói",
  3, "Fortaleza"
)

df_estado <- tibble::tribble(
  ~id, ~estado,
  1, "SP",
  2, "RJ",
  3, "CE"
)

# usar o join, e usar a coluna id como chave para a união
df_nome %>% 
  dplyr::full_join(df_idade, by = "id") %>% 
  dplyr::full_join(df_cidade, by = "id") %>% 
  dplyr::full_join(df_estado, by = "id")
#> # A tibble: 3 × 5
#>      id nome    idade cidade    estado
#>   <dbl> <chr>   <dbl> <chr>     <chr> 
#> 1     1 Beatriz    28 São Paulo SP    
#> 2     2 Ana        30 Niterói   RJ    
#> 3     3 Maria      25 Fortaleza CE

Created on 2021-10-04 by the reprex package (v2.0.1)

Espero que seja útil :slight_smile: Abraços!

Obrigada. Deu tudo certo com a união e ainda aprendi outras coisas com o vídeo!

1 curtida