R: função rbind() e fusão de dados
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 principalmente para adicionar novas informações a um data frame existente, o que é útil quando se tem dados que são atualizados regularmente e se deseja integrá-los a um conjunto de dados existente. Ao processar dados em loops ou processos iterativos, rbind() combina os resultados passo a passo.
Além disso, rbind() no R é frequentemente utilizado para combinar data frames com a mesma estrutura, seja para uma análise mais exaustiva ou para unir diferentes 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 é recomendável utilizar pacotes como dplyr para melhorar o desempenho.
Esta é a sintaxe do rbind() em R
Pode especificar quantos data frames desejar combinar nos parâmetros de rbind(), desde que todos tenham o mesmo número e nomes de colunas.
rbind(data.frame1, data.frame2, ...)ROs argumentos data.frame1, data.frame2, etc., são quadros de dados ou listas de quadros de dados que deve unir por linhas.
Exemplos de utilizaçã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)
df1RVocê obterá o seguinte resultado:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurseREm 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)
df2RResultado:
names status
1 Eva doctor
2 John nurseRAgora pode combinar ambos os data frames:
#binding rows of df1 and df2
rbind(df1,df2)RVocê 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 nurseRNão é possível unir data frames de comprimentos diferentes 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)
df1RResultado:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurseREm 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)
df2RResultado:
names status age
1 Eva doctor 52
2 John nurse 38RAo 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 matchRO 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 diferentes comprimentos
O erro anterior é facilmente resolvido com bind_rows().
#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)RO 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 38RCom bind_rows(), consegue combinar os dois data frames. Os campos vazios são marcados com <NA>. A função é, portanto, uma boa alternativa a rbind() em R quando os data frames não têm o mesmo número de colunas.