Como corrigir em r: erro em rbind(deparse.level,…): os números das colunas dos argumentos não correspondem
Um erro que você pode encontrar no R é:
Error in rbind(deparse.level, ...): numbers of columns of arguments do not match
Este erro ocorre quando você tenta usar a função rbind() em R para unir dois ou mais quadros de dados que não possuem o mesmo número de colunas.
Este tutorial explica exatamente como corrigir esse erro.
Como reproduzir o erro
Suponha que temos os dois quadros de dados a seguir em R:
#create first data frame
df1 <- data. frame (x=c(1, 4, 4, 5, 3),
y=c(4, 4, 2, 8, 10))
df1
xy
1 1 4
2 4 4
3 4 2
4 5 8
5 3 10
#create second data frame
df2 <- data. frame (x=c(2, 2, 2, 5, 7),
y=c(3, 6, 2, 0, 0),
z=c(2, 7, 7, 8, 15))
df2
X Y Z
1 2 3 2
2 2 6 7
3 2 2 7
4 5 0 8
5 7 0 15
Agora suponha que tentamos usar o rbind para vincular esses dois quadros de dados em um único quadro de dados:
#attempt to row-bind the two data frames together
rbind(df1, df2)
Error in rbind(deparse.level, ...):
numbers of columns of arguments do not match
Recebemos um erro porque os dois quadros de dados não possuem o mesmo número de colunas.
Como corrigir o erro
Existem duas maneiras de resolver este problema:
Método 1: use rbind em colunas comuns
Uma maneira de resolver esse problema é usar a função intersect() para encontrar nomes de colunas comuns entre quadros de dados e, em seguida, vincular os quadros de dados apenas nessas colunas:
#find common column names
common <- intersect(colnames(df1), colnames(df2))
#row-bind only on common column names
df3 <- rbind(df1[common], df2[common])
#view result
df3
xy
1 1 4
2 4 4
3 4 2
4 5 8
5 3 10
6 2 3
7 2 6
8 2 2
9 5 0
10 7 0
Método 2: use bind_rows() do dplyr
Outra maneira de resolver esse problema é usar a função bind_rows() do pacote dplyr , que preenche automaticamente os valores NA para nomes de colunas incompatíveis:
library (dplyr)
#bind together the two data frames
df3 <- bind_rows(df1, df2)
#view result
df3
X Y Z
1 1 4 NA
2 4 4 NA
3 4 2 NA
4 5 8 NA
5 3 10 NA
6 2 3 2
7 2 6 7
8 2 2 7
9 5 0 8
10 7 0 15
Observe que os valores NA são preenchidos para os valores df1 , pois a coluna z não existia neste quadro de dados.
Recursos adicionais
Os tutoriais a seguir explicam como resolver outros erros comuns em R:
Como corrigir em R: os nomes não correspondem aos nomes anteriores
Como corrigir em R: o comprimento de um objeto mais longo não é múltiplo do comprimento de um objeto mais curto
Como corrigir em R: contrastes só podem ser aplicados a fatores com 2 ou mais níveis