So beheben sie den fehler in r: namen stimmen nicht mit vorherigen namen überein
Ein häufiger Fehler, der in R auftreten kann, ist:
Error in match.names(clabs, names(xi)): names do not match previous names
Dieser Fehler tritt auf, wenn Sie versuchen, mit der Funktion rbind() zwei Datenrahmen zu binden, die Spaltennamen der beiden Datenrahmen jedoch nicht übereinstimmen.
In diesem Tutorial werden die genauen Schritte erläutert, mit denen Sie diesen Fehler beheben können.
Beispiel: So beheben Sie „Namen stimmen nicht mit vorherigen Namen überein“
Angenommen, wir haben die folgenden zwei Datenrahmen in R:
#create and view first data frame df1 <- data. frame (var1=c(1, 3, 3, 4, 5), var2=c(7, 7, 8, 3, 2)) df1 var1 var2 1 1 7 2 3 7 3 3 8 4 4 3 5 5 2 #create and view first second frame df2 <- data. frame (var3=c(3, 3, 6, 6, 8), var4=c(1, 1, 2, 8, 9)) df2 var3 var4 1 3 1 2 3 1 3 6 2 4 6 8 5 8 9
Wenn wir versuchen, die Funktion rbind() zum Binden dieser beiden Datenrahmen zu verwenden, erhalten wir eine Fehlermeldung:
#attempt to row bind the two data frames
rbind(df1, df2)
Error in match.names(clabs, names(xi)):
names do not match previous names
Wir erhalten diesen Fehler, weil die Spaltennamen der beiden Datenrahmen nicht übereinstimmen.
Der erste Datenrahmen hat die folgenden Spaltennamen:
- var1
- var2
Und der zweite Datenrahmen enthält die folgenden Spaltennamen:
- var3
- var4
Wir können sogar den folgenden Code verwenden, um zu überprüfen, ob die Spaltennamen zwischen den beiden Datenrahmen gleich sind:
#check if column names are identical between two data frames
identical(names(df1), names(df2))
[1] FALSE
Wir können sehen, dass die Spaltennamen nicht identisch sind.
Um diesen Fehler zu beheben, können wir die Spaltennamen im zweiten Datenrahmen manuell umbenennen, damit sie mit den Spaltennamen im ersten Datenrahmen übereinstimmen:
#define two data frames df1 <- data. frame (var1=c(1, 3, 3, 4, 5), var2=c(7, 7, 8, 3, 2)) df2 <- data. frame (var3=c(3, 3, 6, 6, 8), var4=c(1, 1, 2, 8, 9)) #rename second data frame columns names(df2) <- c(' var1 ', ' var2 ') #row bind the two data frames rbind(df1, df2) var1 var2 1 1 7 2 3 7 3 3 8 4 4 3 5 5 2 6 3 1 7 3 1 8 6 2 9 6 8 10 8 9
Wir können sehen, dass rbind() die beiden Datenrahmen erfolgreich verknüpft hat, da die Spaltennamen übereinstimmten.
Eine andere Möglichkeit, diesen Fehler zu beheben, besteht darin, die Funktion „names()“ zu verwenden, um die Spaltennamen vom ersten Datenrahmen automatisch dem zweiten Datenrahmen zuzuweisen:
#define two data frames df1 <- data. frame (var1=c(1, 3, 3, 4, 5), var2=c(7, 7, 8, 3, 2)) df2 <- data. frame (var3=c(3, 3, 6, 6, 8), var4=c(1, 1, 2, 8, 9)) #rename second data frame columns names(df2) <- names(df1) #row bind the two data frames rbind(df1, df2) var1 var2 1 1 7 2 3 7 3 3 8 4 4 3 5 5 2 6 3 1 7 3 1 8 6 2 9 6 8 10 8 9
Auch hier ist rbind() in der Lage, die beiden Datenrahmen erfolgreich zu binden, da sie dieselben Spaltennamen haben.
Zusätzliche Ressourcen
Wie man rbind in R verwendet (mit Beispielen)
Wie man cbind in R verwendet (mit Beispielen)
So fügen Sie Zeilen zu einem Datenrahmen in R hinzu