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

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

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

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

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

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

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

Предположим, у нас есть следующий 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 или более уровнями

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.