So beheben sie in r: fehler in rbind(deparse.level, …): argumentspaltennummern stimmen nicht überein
Ein Fehler, der in R auftreten kann, ist:
Error in rbind(deparse.level, ...): numbers of columns of arguments do not match
Dieser Fehler tritt auf, wenn Sie versuchen, die Funktion rbind() in R zu verwenden, um zwei oder mehr Datenrahmen miteinander zu verbinden, die nicht die gleiche Anzahl von Spalten haben.
In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.
So reproduzieren Sie den Fehler
Angenommen, wir haben die folgenden zwei Datenrahmen in 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
Nehmen wir nun an, wir versuchen, rbind zu verwenden, um diese beiden Datenrahmen zu einem einzigen Datenrahmen zu binden:
#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
Wir erhalten eine Fehlermeldung, weil die beiden Datenrahmen nicht die gleiche Anzahl von Spalten haben.
So beheben Sie den Fehler
Es gibt zwei Möglichkeiten, dieses Problem zu lösen:
Methode 1: Verwenden Sie rbind für gemeinsame Spalten
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Funktion intersect() zu verwenden, um gemeinsame Spaltennamen zwischen Datenrahmen zu finden und dann die Datenrahmen nur für diese Spalten zu verknüpfen:
#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
Methode 2: Verwenden Sie bind_rows() von dplyr
Eine andere Möglichkeit, dieses Problem zu lösen, besteht darin, die Funktion bind_rows() aus dem dplyr- Paket zu verwenden, die automatisch NA-Werte für nicht übereinstimmende Spaltennamen einträgt:
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
Beachten Sie, dass die NA-Werte für die df1 -Werte ausgefüllt werden, da die Z- Spalte in diesem Datenrahmen nicht vorhanden war.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:
So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden