Pular para o conteúdo principal

Mesclando conjuntos de dados em R

Neste tutorial, você vai aprender a juntar vários conjuntos de dados em R.
Atualizado 17 de set. de 2026  · 8 min lido

Explorar com IA

ChatGPTClaudePerplexity

No dia a dia, os dados ficam hospedados em diferentes servidores e espalhados por vários arquivos. Quando as informações de que você precisa vêm de múltiplas fontes, é essencial saber como agregá-las para perder o mínimo possível de informação e fazer combinações que realmente façam sentido com a estrutura dos seus dados.

Este tutorial vai mostrar:

  • Como mesclar conjuntos de dados na horizontal e na vertical
  • O que são chaves primárias e como elas dão estrutura aos seus dados
  • Tipos de joins (por exemplo, left join, inner join, full join) e como escolher entre eles
  • Um problema comum para ficar de olho e como resolvê-lo

Concatenando conjuntos de dados

Em linhas gerais, há duas formas de mesclar conjuntos de dados: adicionando mais linhas ou adicionando mais colunas ao seu dataset. Em geral, quando você tem conjuntos de dados com o mesmo conjunto de colunas ou com o mesmo conjunto de observações, dá para concatená-los vertical ou horizontalmente, respectivamente. Vamos aprender com alguns exemplos.

Adicionando conjuntos de dados na vertical

Quando você tem vários conjuntos de dados com o mesmo conjunto de colunas, pode concatenar um ao outro na vertical. Ou seja, mantendo as colunas do seu dataset, você pode adicionar mais linhas a ele. Ter tudo isso em um único arquivo facilita agregações e a visualização do todo, sem ter que ficar alternando entre vários arquivos e se perder no caminho.

Conjunto de dados 1

Make Num models
Honda 63
BMW 10

Conjunto de dados 2

Make Num models
Ford 26
Tesla 4

É importante notar que, se você tiver a mesma observação em vários conjuntos de dados e concatená-los verticalmente usando rbind(), vai acabar com observações duplicadas na sua tabela. E, embora os dois conjuntos de dados precisem ter o mesmo conjunto de variáveis (isto é, colunas), elas não precisam estar na mesma ordem. Confira você mesmo no console abaixo!

No seu ambiente de trabalho, há dois conjuntos de dados chamados dataset1 e dataset2 mostrados acima. Tente reordenar as colunas de dataset1. Chame rbind() em dataset1 e dataset2, assim como em reordered_dataset1 e dataset2.

dataset1 <- data.frame(make = c("Honda", "BMW"), num_models = c(63, 10)) dataset2 <- data.frame(make = c("Ford", "Tesla"), num_models = c(26, 4)) # Add datasets vertically rbind(dataset1, dataset2) # Reorder columns reordered_dataset1 <- dataset1[, c(2, 1)] # See that rbind() is robust to column ordering rbind(reordered_dataset1, dataset2)

Depois do rbind(), seus resultados devem ter informações sobre as quatro montadoras em uma única tabela, assim:

Conjunto de dados concatenado verticalmente

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Comece a aprender R grátis

Introdução ao R

BasicSkill Level
4 h
3.1M learners
Domine os conceitos básicos de análise de dados em R, incluindo vetores, listas e quadros de dados, e pratique o R com conjuntos de dados reais.
See DetailsRight Arrow
Start Course

Adicionando conjuntos de dados na horizontal

Quando você tem conjuntos de dados que representam o mesmo conjunto de observações, pode concatená-los horizontalmente. Dessa vez, mantendo as linhas do seu dataset, você pode adicionar mais colunas a ele. Nesses casos, é importante verificar se a ordem das observações é a mesma. Se seus conjuntos de dados tiverem quantidades diferentes de linhas ou se tiverem o mesmo número de linhas, mas em ordens diferentes, você pode acabar pareando colunas de um com colunas do outro de um jeito que não faz sentido.

Vamos estender o exemplo acima. Suponha que você tenha dois arquivos: um com a montadora e o número de modelos únicos oferecidos e outro com a montadora e as vendas totais:

Número de modelos únicos oferecidos

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Vendas totais

Make Sales
Ford 119157
BMW 25908
Honda 188328
Tesla 29975

É importante notar que, se você tiver a mesma observação em vários conjuntos de dados e os concatenar horizontalmente com cbind(), vai acabar com colunas redundantes na tabela. E, embora os dois conjuntos contenham informações relacionadas, a ordem das linhas faz diferença!

No console abaixo, chame cbind() em models e sales e imprima o resultado:

models <- data.frame(make = c("Honda", "BMW", "Ford", "Tesla"), num_models = c(63, 10, 26, 4)) sales <- data.frame(make = c("Ford", "BMW", "Honda", "Tesla"), sales = c(119157, 25908, 188328, 29975)) # Add datasets horizontally cbind(models, sales)

Você deve ter obtido algo assim:

Models & Sales

Make Num models Make Sales
Honda 63 Ford 119157
BMW 10 BMW 25908
Ford 26 Honda 188328
Tesla 4 Tesla 29975

Percebeu o problema? Esses dados não estão tidy!

De acordo com os princípios de dados organizados (tidy data) ensinados neste curso fundamental, cada observação de um conjunto de dados deve estar em uma única linha. E se você tivesse informação apenas para algumas linhas em um dos conjuntos e quisesse adicionar colunas apenas para essas? Em outras palavras: e se você quisesse adicionar mais colunas de um conjunto para outro, mas eles não têm o mesmo número de observações?

Chave primária e chaves estrangeiras

O primeiro passo ao combinar conjuntos de dados é procurar a chave primária do seu dataset. A chave primária é a coluna (ou conjunto de colunas) que identifica de forma única cada observação. No exemplo com montadoras, número de modelos únicos e vendas totais, a chave primária dos seus conjuntos é a coluna make.

Agora podemos realizar joins, a forma padrão de mesclar conjuntos de dados em uma única tabela.

Tipos de joins

Existem vários tipos de join. Você pode aprender a acrescentar colunas de um conjunto a outro com joins de mutação, a filtrar um conjunto contra outro com joins de filtragem e a trabalhar com conjuntos por meio de operações de conjunto no curso Joining Data in R with dplyr. Abaixo estão alguns dos mais comuns.

left_join(x, y): retorna todas as linhas de x e todas as colunas de x e y. Linhas em x sem correspondência em y terão valores NA nas novas colunas. Se houver várias correspondências entre x e y, todas as combinações são retornadas.

inner_join(x, y): retorna todas as linhas de x que têm correspondência em y e todas as colunas de x e y. Se houver várias correspondências entre x e y, todas as combinações são retornadas.

full_join(x, y): retorna todas as linhas e todas as colunas de x e y. Onde não houver correspondência, a função retorna NA para o que estiver faltando.

Os joins acima são exemplos de joins de mutação, já que combinam variáveis de dois conjuntos de dados.

Chaves ausentes

Suponha que você tenha dois conjuntos de dados. O primeiro se chama size e contém os nomes das pessoas e seus tamanhos de camisa:

 > size
name size
1  Tom    M
2  Dan   XL
3 Keil    S

O segundo se chama color e contém os sobrenomes, as preferências de cor da camisa e armazena algumas informações no atributo row.names:

 > color
     surname color
Tom     Jeon  <NA>
Dan    Smith  Dark
Bob McLadden Light

Percebe o que pode dar errado? Joins entre duas tabelas podem ficar complicados quando há chaves ausentes ou duplicadas. Neste exemplo, os data frames do R armazenam informações importantes no atributo row.names. Quando isso acontece, você não consegue acessar a chave com uma função de join, já que essas funções só acessam colunas do data frame.

O truque para resolver isso facilmente é usar a função rownames_to_column() do pacote tibble. Ela retorna uma cópia do seu conjunto de dados com os nomes das linhas adicionados como uma coluna. O primeiro argumento de rownames_to_column() é o seu data frame e o segundo é uma string com o nome da coluna que você quer adicionar.

Tente explorar no console abaixo. Os conjuntos size e color já estão carregados no seu ambiente.

color <- data.frame(surname = c("Jeon", "Smith", "McLadden"), color = c(NA, "Dark", "Light")) row.names(color) <- c("Tom", "Dan", "Bob") size <- data.frame(name = c("Tom", "Dan", "Keil"), size = c("M", "XL", "S")) # Explore here!

Considerações finais

Na prática, os dados podem vir divididos em muitos conjuntos e em vários formatos. Como o R é projetado para trabalhar com tabelas únicas, manipular e combinar conjuntos de dados em uma só tabela é uma habilidade essencial. Conclua a trilha de habilidades Importing & Cleaning Data with R e aprenda a analisar e combinar dados em qualquer formato. Confira também o tutorial de R Data Import da DataCamp. Bons estudos!

Tópicos
R
Ciência de dados
Data Analysis

Saiba mais sobre R

Curso

Introdução ao R

4 h
3.1M
Domine os conceitos básicos de análise de dados em R, incluindo vetores, listas e quadros de dados, e pratique o R com conjuntos de dados reais.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Tutorial de junção de DataFrames no pandas

Neste tutorial, você aprenderá várias maneiras pelas quais vários DataFrames podem ser mesclados em python usando a biblioteca Pandas.
DataCamp Team's photo

DataCamp Team

13 min

multiple linear regression

Tutorial

Regressão linear múltipla no R: Tutorial com exemplos

Uma visão geral completa para entender as regressões lineares múltiplas no R por meio de exemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Criação de uma lista no R

Pratique Listas em R usando o material do curso Intro to R do DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 min

Tutorial

Criação de modelos de redes neurais (NN) em R

Neste tutorial, você aprenderá a criar um modelo de rede neural no R.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Tutorial

Tutorial do K-Means Clustering no R

Saiba o que é o k-means e descubra por que ele é um dos algoritmos de agrupamento mais usados na ciência de dados
Eugenia Anello's photo

Eugenia Anello

8 min

Tutorial

Tutorial de regressão linear no R

Neste tutorial, você aprenderá os fundamentos de um modelo estatístico muito popular: a regressão linear.

Eladio Montero Porras

15 min

Ver MaisVer Mais