Ошибка в R: ошибка в сканировании (файл, что, nmax, sep, dec, quote, skip, nlines, na.strings,: строка 1 не имела 42 элементов)
Я новичок в R. Я пытаюсь прочитать в файле "CSV", который ограничен пространством. Файл не имеет заголовков. Похоже на это
Element1 Element2
Element5 Element6 Element7
Я пытаюсь прочитать это следующим образом:
> mydata <- read.table("/PathTo/file.csv")
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 1 did not have 14 elements
Почему он ожидает 14 элементов в первой строке? Как импортировать этот файл?
Ответы
Ответ 1
read.table
хочет вернуть data.frame
, который должен иметь элемент в каждом столбце. Поэтому R ожидает, что каждая строка будет иметь одинаковое количество элементов и по умолчанию не заполняет пустые пространства. Попробуйте read.table("/PathTo/file.csv" , fill = TRUE )
заполнить пробелы.
например.
read.table( text= "Element1 Element2
Element5 Element6 Element7" , fill = TRUE , header = FALSE )
# V1 V2 V3
#1 Element1 Element2
#2 Element5 Element6 Element7
Заметка о том, устанавливать или не устанавливать header = FALSE
... read.table
, пытается автоматически определить, есть ли у вас строка заголовка:
header
устанавливается в TRUE
тогда и только тогда, когда первая строка содержит одно меньшее поле, чем число столбцов
Ответ 2
Чтобы прочитать символы, попробуйте
scan("/PathTo/file.csv", "")
Если вы читаете числовые значения, просто используйте
scan("/PathTo/file.csv")
scan
по умолчанию будет использовать пробел в качестве разделителя. Тип второго arg определяет "что" читать (по умолчанию используется double()).