R 오류 수정 방법: 이름이 이전 이름과 일치하지 않습니다.


R에서 발생할 수 있는 일반적인 오류는 다음과 같습니다.

 Error in match.names(clabs, names(xi)): 
  names do not match previous names

이 오류는 rbind() 함수를 사용하여 두 데이터 프레임을 바인딩하려고 시도했지만 두 데이터 프레임의 열 이름이 일치하지 않을 때 발생합니다.

이 튜토리얼에서는 이 오류를 해결하는 데 사용할 수 있는 정확한 단계를 공유합니다.

예: “이름이 이전 이름과 일치하지 않습니다”를 수정하는 방법

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

rbind() 함수를 사용하여 두 데이터 프레임을 바인딩하려고 하면 오류가 발생합니다.

 #attempt to row bind the two data frames
rbind(df1, df2)

Error in match.names(clabs, names(xi)): 
  names do not match previous names

두 데이터 프레임의 열 이름이 일치하지 않기 때문에 이 오류가 발생합니다.

첫 번째 데이터 프레임에는 다음과 같은 열 이름이 있습니다.

  • var1
  • var2

두 번째 데이터 프레임에는 다음 열 이름이 포함됩니다.

  • var3
  • var4

다음 코드를 사용하여 두 데이터 프레임 간에 열 이름이 동일한지 확인할 수도 있습니다.

 #check if column names are identical between two data frames
identical(names(df1), names(df2))

[1] FALSE

열 이름이 동일하지 않음을 알 수 있습니다.

이 오류를 해결하려면 첫 번째 데이터 프레임의 열 이름과 일치하도록 두 번째 데이터 프레임의 열 이름을 수동으로 바꿀 수 있습니다.

 #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

열 이름이 일치했기 때문에 rbind()가 두 데이터 프레임을 성공적으로 연결했음을 확인할 수 있습니다.

이 오류를 해결하는 또 다른 방법은 names() 함수를 사용하여 첫 번째 데이터 프레임의 열 이름을 두 번째 데이터 프레임에 자동으로 할당하는 것입니다.

 #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

다시 말하지만, rbind()는 동일한 열 이름을 공유하기 때문에 두 데이터 프레임을 성공적으로 바인딩할 수 있습니다.

추가 리소스

R에서 rbind를 사용하는 방법(예제 포함)
R에서 cbind를 사용하는 방법(예제 포함)
R의 데이터 프레임에 행을 추가하는 방법

의견을 추가하다

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