문제 해결 방법: "열 이름"을 설정해 보십시오. 2차원 미만의 객체에 대해


R을 사용할 때 발생할 수 있는 오류 메시지는 다음과 같습니다.

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

이 오류는 일반적으로 colnames() 함수를 사용하여 데이터 프레임이나 행렬이 아닌 개체에 열 이름을 설정하려고 할 때 발생합니다.

다음 예에서는 실제로 이 오류를 해결하는 방법을 보여줍니다.

오류를 재현하는 방법

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

이제 데이터 프레임 끝에 새 줄을 추가하려고 한다고 가정해 보겠습니다.

 #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

데이터프레임이나 행렬 대신 벡터에 colnames() 함수를 사용했기 때문에 오류가 발생합니다.

오류를 수정하는 방법

이 오류를 방지하려면 데이터 프레임과 함께 colnames() 함수를 사용해야 합니다.

예를 들어, 다음 코드를 사용하여 데이터 프레임 끝에 새 줄을 추가할 수 있습니다.

 #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

이번에는 colnames() 함수를 사용하여 벡터 대신 데이터 프레임의 열 이름을 설정했기 때문에 오류가 발생하지 않습니다.

그런 다음 rbind()를 성공적으로 사용하여 개행 문자를 기존 데이터 프레임의 끝에 바인딩할 수 있습니다.

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.

R에서 수정하는 방법: 인수에 다른 줄 수가 포함됩니다.
R에서 수정하는 방법: 사용하지 않는 인수를 선택하는 중 오류가 발생했습니다.
R에서 복구하는 방법: 교체 길이가 0입니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다