A função R rbind() pode ser usada para combinar conjuntos de dados que possuem o mesmo número de colunas.

O que é a função rbind() em R?

A função R rbind() serve para combinar dados linha por linha. Ela costuma ser usada para adicionar novas in­for­ma­ções em um data frame existente. Esse é um recurso prático para os usuários que atualizam os dados re­gu­lar­mente e precisam integrá-los a um conjunto que já foi criado.

A função R rbind() também é usada para combinar dois data frames com a mesma estrutura, seja para facilitar uma análise mais detalhada ou juntar partes di­fe­ren­tes de um conjunto de dados. Observe que rbind() funciona de maneira eficiente com grupos menores de dados, enquanto pacotes como dplyr oferecem melhor de­sem­pe­nho para conjuntos maiores.

Sintaxe da função R rbind()

Você pode inserir quantos data frames quiser na sintaxe da função rbind() para combiná-los. Apenas cer­ti­fi­que-se de que todos eles tenham o mesmo número de colunas e que essas colunas tenham os mesmos nomes.

rbind(data.frame1, data.frame2, ...)
R

Os ar­gu­men­tos data.frame1, data.frame2 e demais re­pre­sen­tam os data frames ou as listas de data frames que serão com­bi­na­dos linha por linha.

Exemplos de uso da função rbind() em R

A seguir, ana­li­sa­re­mos alguns exemplos de como usar a função R rbind(). Primeiro, vamos criar um data frame com duas colunas:

#Criação do data frame 1
nomes<-c("Débora","Thomas","Mário","Laura","Rebeca")
cargos<-c("analista","gerente","analista","gerente","analista")
df1<-data.frame(nomes, cargos)
df1
R

O resultado será o seguinte:

nomes              cargos
1  Débora     	analista
2  Thomas    gerente
3  Mário      	analista
4  Laura    gerente
5  Rebeca     	analista
R

Em seguida, definimos o segundo data frame com o mesmo número de colunas:

#Criação do data frame 2
nomes<-c("Eva","João")
cargos<-c("gerente","analista")
df2<-data.frame(nomes, cargos)
df2
R

Resultado:

nomes      cargos
 1  Eva            gerente 
2   João          analista
R

Agora, com­bi­na­mos os dois data frames:

#Combinação das linhas de df1 e df2
rbind(df1,df2)
R

O resultado será o seguinte:

nomes     	cargos
1  Débora  	analista
2  Thomas          	gerente    
3  Mário            analista      
4  Laura        	gerente    
5  Rebeca  	analista     
6  Eva             	gerente   
7  João            analista
R

Data frames com número diferente de colunas

A seguir, mos­tra­re­mos o que acontece quando se tenta combinar dois data frames com um número diferente de colunas.

Primeiro, vamos criar novamente um data frame com duas colunas:

#Criação do data frame 1
nomes<-c("Débora","Thomas","Mário","Laura","Rebeca")
cargos<-c("analista","gerente","analista","gerente","analista")
df1<-data.frame(nomes, cargos)
df1
R

Resultado:

nomes     	cargos
1  Débora 	analista
2  Thomas        	gerente
3  Mário         	analista
4  Laura        	gerente
5 Rebeca 	analista
R

Agora, vamos criar um data frame com três colunas:

#Criação do data frame 2
nomes<-c("Eva","João")
cargos<-c("gerente","analista")
idades<-c("52","38")
df2<-data.frame(nomes, cargos, idades)
df2
R

Resultado:

nomes    cargos    idades
1  Eva        gerente      52
2  João      analista      38
R

Ao usarmos a função rbind() em R para combinar os dois data frames, re­ce­be­re­mos a seguinte mensagem de erro:

rbind(df1,df2)
Error in rbind(deparse.level, ...) :
    numbers of columns of arguments do not match
R

O erro revela que não é possível usar a função R rbind() para combinar os dois data frames, pois eles apre­sen­tam números di­fe­ren­tes de colunas. No entanto, podemos usar a função bind_rows() do pacote dplyr para fazer a com­bi­na­ção desejada.

Combinar data frames com número diferente de colunas

Os data frames do exemplo acima podem ser com­bi­na­dos usando a função bind_rows().

#Instalação do dplyr
install.packages('dplyr')
#Importação de bibliotecas
library(dplyr)
#Combinação de linhas
bind_rows(df1,df2)
R

O resultado será o seguinte:

nomes    cargos          	idades
1  Débora    analista      <NA>
2  Thomas   gerente     <NA>
3  Mário      analista      <NA>
4  Laura       gerente     <NA>
5  Rebeca   analista      <NA>
6  Eva          gerente         52
7  João        analista         38
R

A função bind_rows() foi capaz de combinar os dois data frames. Os campos vazios foram marcados com a expressão <NA>. Essa é uma boa al­ter­na­tiva à função rbind() em R se você precisa combinar dois data frames com números di­fe­ren­tes de colunas.

Dica

Quer aprender mais sobre edição e exibição de dados na linguagem R? Consulte os nossos tutoriais sobre R plot e R paste.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana
Ir para o menu principal