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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert