Se precisar ordenar conjuntos de dados que têm o mesmo número de colunas,rbind() no R para isso.

Para que serve o rbind()R?

A função rbind() do R é muito útil para combinar dados linha por linha. É usada prin­ci­pal­mente para adicionar novas in­for­ma­ções a um data frame existente, o que é útil quando se tem dados que são atu­a­li­za­dos re­gu­lar­mente e se deseja integrá-los a um conjunto de dados existente. Ao processar dados em loops ou processos ite­ra­ti­vos, rbind() combina os re­sul­ta­dos passo a passo.

Além disso, rbind() no R é fre­quen­te­mente utilizado para combinar data frames com a mesma estrutura, seja para uma análise mais exaustiva ou para unir di­fe­ren­tes partes de um conjunto de dados num conjunto de dados completo. Deve ter em conta que, embora rbind() seja eficiente com conjuntos de dados pequenos, para conjuntos de dados grandes é re­co­men­dá­vel utilizar pacotes como dplyr para melhorar o de­sem­pe­nho.

Esta é a sintaxe do rbind() em R

Pode es­pe­ci­fi­car quantos data frames desejar combinar nos pa­râ­me­tros de rbind(), desde que todos tenham o mesmo número e nomes de colunas.

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

Os ar­gu­men­tos data.frame1, data.frame2, etc., são quadros de dados ou listas de quadros de dados que deve unir por linhas.

Exemplos de uti­li­za­ção de rbind()R

Para ilustrar como funciona rbind() no R com um exemplo concreto, primeiro deve criar um data frame com duas colunas:

#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
R

Você obterá o seguinte resultado:

names status
1  Deborah     nurse
2  Tom   doctor
3  Matt      nurse
4  Laura   doctor
5  Rebecca     nurse
R

Em seguida, defina outro data frame com o mesmo número de colunas:

#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)
df2
R

Resultado:

names    status
 1  Eva       doctor
2   John     nurse
R

Agora pode combinar ambos os data frames:

#binding rows of df1 and df2
rbind(df1,df2)
R

Você obterá o seguinte resultado:

names     status
1  Deborah nurse      
2  Tom doctor    
3  Matt nurse      
4  Laura doctor    
5  Rebecca nurse     
6  Eva doctor   
7 John nurse
R

Não é possível unir data frames de com­pri­men­tos di­fe­ren­tes com rbind() no R.

Observe o que acontece quando tenta combinar data frames com um número diferente de colunas.

Primeiro, crie um novo quadro de dados com duas colunas:

#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
R

Resultado:

names     status
1  Deborah nurse      
2  Tom doctor    
3  Matt nurse      
4  Laura doctor    
5  Rebecca nurse
R

Em seguida, crie um data frame com uma coluna adicional (três no total):

#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2
R

Resultado:

names    status    age
1  Eva        doctor    52
2  John      nurse      38
R

Ao tentar unir ambos com rbind() em R, receberá a seguinte mensagem de erro:

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

O erro indica que não é possível unir os dois data frames com rbind() porque o número de colunas não coincide. No entanto, é possível utilizar bind_rows() do pacote dplr para uni-los.

bind_rows() permite combinar data frames de di­fe­ren­tes com­pri­men­tos

O erro anterior é fa­cil­mente resolvido com bind_rows().

#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)
R

O resultado obtido é o seguinte:

names    status            age
1  Deborah    nurse      <NA>
2 Tom       doctor     <NA>
3  Matt      nurse       <NA>
4  Laura   doctor     <NA>
5  Rebecca   nurse       <NA>
6  Eva    doctor     52
7  John    nurse       38
R

Com bind_rows(), consegue combinar os dois data frames. Os campos vazios são marcados com <NA>. A função é, portanto, uma boa al­ter­na­tiva a rbind() em R quando os data frames não têm o mesmo número de colunas.

Dica

Se quiser saber mais sobre funções para mostrar e editar conjuntos de dados no R, re­co­men­da­mos consultar os tutoriais R plot e R paste do nosso Guia Digital.

Ir para o menu principal