Как исправить в r: столбцов больше, чем имен столбцов
Ошибка, с которой вы можете столкнуться в R:
Error in read.table("my_data.csv", header=TRUE): more columns than column names
Эта ошибка обычно возникает, когда вы пытаетесь прочитать CSV-файл в R с помощью функции read.table() и не указываете, что разделителем ( sep ) должна быть запятая.
В этом руководстве объясняется, как именно исправить эту ошибку.
Как воспроизвести ошибку
Допустим, у нас есть следующий CSV-файл с именем Basketball_data.csv :
Теперь предположим, что мы пытаемся импортировать этот файл в R с помощью функции read.table() :
#attempt to import CSV into data frame
df <- read. table ("basketball_data.csv", header= TRUE )
Error in read.table("basketball_data.csv", header = TRUE):
more columns than column names
Мы получаем сообщение об ошибке, поскольку нам не удалось указать, что значения в нашем файле разделены запятыми.
Поскольку между значениями в строках фрейма данных есть пробелы, но нет в заголовке, функция read.table() считает, что есть только один столбец.
Итак, это говорит нам о том, что столбцов больше, чем имен столбцов.
Как исправить ошибку
Чтобы исправить эту ошибку, просто используйте sep=»», при импорте файла:
#import CSV file into data frame
df <- read. table ("basketball_data.csv", header= TRUE , sep=",")
#view data frame
df
team points rebounds
1 to 22 10
2 B 14 9
3 C 29 6
4 D 30 2
Мы можем успешно импортировать файл CSV без каких-либо ошибок, поскольку мы указали, что значения в файле разделены запятыми.
В качестве альтернативы мы могли бы просто использовать read.csv() для импорта файла, если мы знаем, что это файл CSV:
#import CSV file into data frame
df <- read. csv ("basketball_data.csv", header= TRUE )
#view data frame
df
team points rebounds
1 'A' 22 10
2 'B' 14 9
3 'C' 29 6
4 'D' 30 2
Обратите внимание, что на этот раз мы также не получаем никаких ошибок при импорте файла CSV.
Дополнительные ресурсы
В следующих руководствах объясняется, как устранить другие распространенные ошибки в R:
Как исправить в R: Имена не совпадают с предыдущими именами
Как исправить в R: длина более длинного объекта не кратна длине более короткого объекта
Как исправить в R: контрасты можно применять только к факторам с 2 и более уровнями