R에서 수정하는 방법: 중복된 'row.names'는 허용되지 않습니다.


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

 Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed 

이 오류는 일반적으로 헤더 줄을 제외한 파일의 모든 줄 끝에 쉼표가 포함된 CSV 파일을 R로 읽으려고 할 때 발생합니다.

이 튜토리얼에서는 이 오류를 수정하는 방법을 정확하게 설명합니다.

오류를 재현하는 방법

my_data.csv 라는 다음과 같은 CSV 파일이 있다고 가정해 보겠습니다.

헤더 줄을 제외한 파일의 모든 줄 끝에는 쉼표가 있습니다.

이제 이 파일을 R로 가져오려고 한다고 가정해 보겠습니다.

 #attempt to import CSV into data frame
df <- read. csv (' my_data.csv ')

Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed

헤더 줄을 제외한 파일의 모든 줄 끝에 쉼표가 있기 때문에 오류가 발생합니다. 이로 인해 R은 값의 첫 번째 열이 줄 이름이라고 생각하게 됩니다.

두 행의 시드 값(4)이 동일하므로 R은 중복된 행 이름이 있다고 생각합니다.

오류를 수정하는 방법

이 오류를 해결하는 방법은 파일을 가져올 때 row.names=NULL을 사용하는 것입니다.

 #import CSV file into data frame
df <- read. csv (' my_data.csv ', row.names =NULL)

#view data frame
df

  row.names column1 column2 column3
1 4 5 7 NA
2 4 2 1 NA
3 7 9 0 NA

CSV 파일을 성공적으로 가져올 수 있지만 열 이름이 잘못되었습니다.

이 문제를 해결하려면 열 이름을 변경한 다음 마지막 열을 삭제하면 됩니다.

 #modify column names
colnames(df) <- colnames(df)[2: ncol (df)]

#drop last column
df <- df[1:( ncol (df)-1)]

#view updated data frame
df

  column1 column2 column3
1 4 5 7
2 4 2 1
3 7 9 0

이제 데이터 프레임이 올바른 형식으로 되어 있습니다.

관련 항목: R에서 ncol 함수를 사용하는 방법

추가 리소스

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

R에서 수정하는 방법: 이름이 이전 이름과 일치하지 않습니다.
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.
R에서 수정하는 방법: 대비는 수준이 2개 이상인 요인에만 적용할 수 있습니다.

의견을 추가하다

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