Когда я использую R data.table(fread)
для чтения dat
файла (3 ГБ), возникает проблема:
Остановлен раньше на строке 3169933. Ожидалось 136 полей, но найдено 138. Рассмотрим fill=TRUE и comment.char=. Первая отброшенная непустая строка:
Мой код:
library(data.table)
file_path = 'data.dat' # 3GB
fread(file_path,fill=TRUE)
Проблема в том, что в моем файле ~ 5 миллионов строк. В деталях:
- От строки 1 до строки 3169933 он имеет 136 столбцов.
- От строки 3169933 до строки 5000000 он имеет 138 столбцов.
fread()
из-за этой ошибки читает мой файл только до строки 3169933. fill = TRUE
в данном случае не помогло. Кто-нибудь может мне помочь?
Версия R: 3.6.3 версия data.table: 1.13.2
Обратите внимание на fill=TRUE в этом случае:
[Случай 1 - не мой случай] если часть 1 моего файла (50% строк) имеет 138 столбцов, а часть 2 имеет 136 столбцов, тогда fill=TRUE поможет (он заполнит два столбца в части 2 с NA)
[Случай 2 - мой случай] если часть 1 моего файла (50% строк) имеет 136 столбцов, а часть 2 имеет 138 столбцов, то fill = TRUE в этом случае не поможет.
fill=TRUE
? - person Vasily A   schedule 15.11.2020