data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
Здравствуйте. При чтении файла по data.table::fread получаю "Error: ... embedded nul in string: '\0\0\0' " Как "прорваться" ?
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
А где текст кода, который ошибку выдаёт?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
Код: Выделить всё
DT.Today <- data.table::fread("Today_Csv.txt",
colClasses = vColTypes, sep = "\t",
stringsAsFactors = F)
Код: Выделить всё
DT.Today <- data.table::fread("Today_Csv.txt",
colClasses = vColTypes, sep = "\t",
nrows = 960000,
stringsAsFactors = F)
Код: Выделить всё
Read 960000 rows and 36 (of 36) columns from 0.230 GB file in 00:00:22
Код: Выделить всё
> vColTypes
[1] "double" "character" "character" "character" "character" "character" "double" "double" "double" "double"
[11] "character" "double" "double" "character" "character" "character" "integer" "character" "character" "double"
[21] "double" "double" "integer" "integer" "integer" "integer" "character" "character" "character" "double"
[31] "double" "double" "double" "double" "double" "double"
>
А, когда читал через sep="," - и в одном из символьных столбцов были запятые - так любезно сообщила номер строки, где это встретилось впервые...
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
похоже на юникод двухбайтовый в файле или типа того. Посмотрите кодировку, и укажите при чтении. И посмотрите в текстовом редакторе FAR, полистайте, начиная с 960000 строк ...
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
да, gamm, что-то в этом роде - вероятно, кириллица там... да ещё с "кракозябрами"... спасибо!
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: data.table::fread : "Error: ... embedded nul in string: '\0\0\0' "
... так прошло:
- в исходном ASCII ничего не менял... из tbl.Today сделал актуальную для дальнейшей работы выборку , которая насчитывает всего 68286 строки... в выборке "кракозябр" в символьных колонках нет... столбцы числовые (lon/lat), по которым эту выборку сделал, в изначальном "чтиве" прочитались корректно...
NB: readr::read_tsv медленнее читает, чем data.table::fread ... в работе с большими файлами data.table::fread пока (по моему опыту) - самая быстрая в R "читалка"
Код: Выделить всё
> tbl.Today <- readr::read_tsv("Today_Csv.txt")
> nrow(tbl.Today)
[1] 962076
>
NB: readr::read_tsv медленнее читает, чем data.table::fread ... в работе с большими файлами data.table::fread пока (по моему опыту) - самая быстрая в R "читалка"
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей