Как исправить в r: дубликаты «row.names» не допускаются


Ошибка, с которой вы можете столкнуться в R:

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

Эта ошибка обычно возникает при попытке прочитать в R файл CSV, который содержит запятые в конце каждой строки файла, кроме строки заголовка.

В этом руководстве объясняется, как именно исправить эту ошибку.

Как воспроизвести ошибку

Допустим, у нас есть следующий CSV-файл с именем my_data.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

Кадр данных теперь имеет правильный формат.

Связанный: Как использовать функцию ncol в R

Дополнительные ресурсы

В следующих руководствах объясняется, как устранить другие распространенные ошибки в R:

Как исправить в R: Имена не совпадают с предыдущими именами
Как исправить в R: длина более длинного объекта не кратна длине более короткого объекта
Как исправить в R: контрасты можно применять только к факторам с 2 и более уровнями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *