Одна ошибка, с которой вы можете столкнуться в 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 или более уровнями