So lösen sie das problem: versuchen sie, „spaltennamen“ festzulegen. auf einem objekt mit weniger als zwei dimensionen


Eine Fehlermeldung, die bei der Verwendung von R auftreten kann, ist:

 Error in `colnames<-`(`*tmp*`, value = c("var1", "var2", "var3")): 
  attempt to set 'colnames' on an object with less than two dimensions

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, mit der Funktion colnames() Spaltennamen für ein Objekt festzulegen, das kein Datenrahmen oder keine Matrix ist.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir haben den folgenden Datenrahmen in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'C', 'B', 'C', 'B', 'B', 'C', 'A'),
                 points=c(12, 8, 26, 25, 38, 30, 24, 24, 15),
                 rebounds=c(10, 4, 5, 5, 4, 3, 8, 18, 22))

#view data frame
df

  team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22

Nehmen wir nun an, wir versuchen, am Ende des Datenrahmens eine neue Zeile hinzuzufügen:

 #define new row to add to end of data frame
new_row <- c('D', 15, 11)

#attempt to define column names for new row
colnames(new_row) <- colnames(df)

Error in `colnames<-`(`*tmp*`, value = c("team", "points", "rebounds")): 
  attempt to set 'colnames' on an object with less than two dimensions

Wir erhalten eine Fehlermeldung, weil wir die Funktion colnames() für einen Vektor anstelle eines Datenrahmens oder einer Matrix verwendet haben.

So beheben Sie den Fehler

Um diesen Fehler zu vermeiden, müssen wir sicherstellen, dass wir die Funktion colnames() mit einem Datenrahmen verwenden:

Beispielsweise können wir den folgenden Code verwenden, um am Ende des Datenrahmens eine neue Zeile hinzuzufügen

 #define new row to add to end of data frame
new_row <- data. frame ('D', 15, 11)

#define column names for new row
colnames(new_row) <- colnames(df)

#add new row to end of data frame
df <- rbind(df, new_row)

#view updated data frame
df

   team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
10 D 15 11

Dieses Mal erhalten wir keine Fehler, da wir die Funktion colnames() verwendet haben, um die Spaltennamen eines Datenrahmens anstelle eines Vektors festzulegen.

Anschließend können wir rbind() erfolgreich verwenden, um die neue Zeile an das Ende des vorhandenen Datenrahmens zu binden.

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: Argumente umfassen eine unterschiedliche Anzahl von Zeilen
So beheben Sie in R: Fehler bei der Auswahl nicht verwendeter Argumente
So reparieren Sie in R: Der Ersatz hat die Länge Null

Einen Kommentar hinzufügen

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