r - read.csv - пропускать строки с разным количеством столбцов

В верхней части моего CSV-файла есть 5 строк, которые служат информацией о файле, который мне не нужен.

В этих информационных строках всего 2 столбца, а в заголовках и строках данных (начиная с шести) - 8. Это, по-видимому, является причиной проблемы.

Я пробовал использовать функцию пропуска в read.csv, чтобы пропустить эти строки, и то же самое с read.table

df = read.csv("myfile.csv", skip=5)
df = read.table("myfile.csv", skip=5)

но это по-прежнему дает мне то же сообщение об ошибке, а именно:

Error in read.table("myfile.csv",  :empty beginning of file

Дополнительно: Предупреждающие сообщения:

1: In readLines(file, skip) : line 1 appears to contain an embedded nul
2: In readLines(file, skip) : line 2 appears to contain an embedded nul
...
5: In readLines(file, skip) : line 5 appears to contain an embedded nul

Как я могу заставить этот .csv считываться в r без нулевых значений в первых 5 строках, вызывающих эту проблему?


person datavoredan    schedule 09.04.2014    source источник
comment
Произошла ошибка типа файла. Мой csv, по-видимому, хранился как «Unicode», хотя в нем говорилось, что Microsoft Excel Comma Seper ... в поле «Тип» в папке.   -  person datavoredan    schedule 09.04.2014
comment
Это может быть полезно для вас: функция fread, которая читает файл csv после автоматического определения количества пропущенных строк (stackoverflow .com / questions / 15332195 /).   -  person Jealie    schedule 09.04.2014


Ответы (2)


Вы можете попробовать:

read.csv(text=readLines('myfile.csv')[-(1:5)])

Это сначала сохранит каждую строку в собственном элементе вектора, затем отбросит первые пять и обработает остальные как csv.

person jbaums    schedule 09.04.2014
comment
Как можно пропустить столбцы, если некоторые из них вызывают проблемы? Вот один пример: stackoverflow.com/q/5788117/54964 - person Léo Léopold Hertz 준영; 13.05.2017

Вы можете избавиться от предупреждающих сообщений, используя параметр 'skipNul';

text=readLines('myfile.csv', skipNul=True)
person Nasir Mahmood    schedule 12.03.2015
comment
Это только избавляет от сообщений, но на самом деле не решает проблему. - person Bono; 12.03.2015