Development Tip

rbind 오류 : "이름이 이전 이름과 일치하지 않습니다"

yourdevel 2020. 12. 29. 08:00
반응형

rbind 오류 : "이름이 이전 이름과 일치하지 않습니다"


더 큰 문제 ( 폴리곤 ID가 동일한 상황 ,makeUniqueIDsrbind.SpatialPolygonsDataFrame대한 인수 추가 )의 일부로 rbind에서 다음과 같은 이상한 메시지가 표시됩니다.

> do.call("rbind",xd.small)
Error in match.names(clabs, names(xi)) : 
  names do not match previous names

이것에 대해 내가 찾을 수있는 유일한 다른 정보는 이 질문 이었습니다. 이 질문 은 그것이 rbind문제의 근원 이라고 믿게합니다 .

물론 내 자신의 rbind와 같은 함수를 작성할 수 있지만 아마도이 match.names검사는 이유 때문에 발생하며 그것이 무엇인지 궁금합니다.


첫 번째 데이터 프레임의 이름이 두 번째 데이터 프레임의 이름과 일치하지 않습니다. 오류 메시지가 말하는 것과 같습니다.

> identical(names(xd.small[[1]]), names(xd.small[[2]]) )
[1] FALSE

두 번째 df의 세 번째 또는 네 번째 열의 이름에 신경 쓰지 않는 경우 동일하게 강제 할 수 있습니다.

> names(xd.small[[1]]) <- names(xd.small[[2]]) 
> identical(names(xd.small[[1]]), names(xd.small[[2]]) )
[1] TRUE

그러면 일이 행복하게 진행되어야합니다.


unname()기능 을 사용하기에 충분히 쉬움 :

data.frame <- unname(data.frame)

rbind()두 개체 이름이 동일해야합니다. 예를 들어, 첫 번째 개체 이름 : ID Age, 다음 개체 이름 : ID Gender, 사용하려는 경우 다음 rbind()이 출력됩니다.

이름이 이전 이름과 일치하지 않습니다.


다음과 같이 코드를 사용하십시오.

mylist <- lapply(pressure, function(i)read.xlsx(i,colNames = FALSE))#
mydata <- do.call('rbind',mylist)#

결합 된 두 파일의 모든 변수 이름을 확인하십시오. 결합 할 두 파일의 변수 이름은 정확히 동일해야합니다. 그렇지 않으면 위에서 언급 한 오류가 발생합니다. 나는 같은 문제에 직면하고 있었고 두 파일에서 모든 이름을 동일하게 만든 후에 rbind가 정확하게 작동합니다.

감사

참조 URL : https://stackoverflow.com/questions/12019461/rbind-error-names-do-not-match-previous-names

반응형