Какие у меня варианты, когда я имею дело с очень крупными плитами? - PullRequest
0 голосов
/ 16 января 2019

Я выполняю некоторую предварительную обработку данных из нескольких источников (несколько больших CSV, более 500 МБ), применяю некоторые преобразования и в итоге получаю окончательный набор данных tibble, который имеет все данные, которые мне нужны, в чистом »формате. " В конце этой предварительной обработки я сохраняю этот последний фрагмент в виде файла .RData, который импортирую позже для моего последующего статистического анализа.

Проблема в том, что набор данных tibble очень большой (занимает 5 ГБ памяти в рабочей области R), и его сохранение и загрузка происходит очень медленно. Я не измерил его по времени, но для сохранения этого объекта требуется более 15 минут, даже при сжатии = ЛОЖЬ.

Вопрос: Есть ли у меня (в идеале простые) варианты, чтобы ускорить все это? Я уже проверил, и все типы данных в таблице приведены в том виде, в котором они должны быть (символ - это символ, числовой - это dbl и т. Д.)

Спасибо

1 Ответ

0 голосов
/ 17 января 2019

read_csv и другие функции tidyr не самые быстрые, но они действительно упрощают работу. Согласно комментариям на ваш вопрос, data.table :: fread - отличный вариант для ускорения импорта данных во фреймы данных. Это ~ 7x быстрее , чем read_csv. Эти фреймы данных затем можно легко изменить на тиблы, используя dplyr :: as_tibble. Вам также может даже не потребоваться изменить кадры данных на тиббл перед обработкой, так как большинство функций обратного хода примут входные данные фрейма данных и выдадут выходной тиббл.

...