Можно ли импортировать подмножество больших файлов.rds или.feather в R?

Я нашел хорошие советы о быстрых способах импорта файлов в R, но мне интересно, возможно ли импортировать в переменную только подмножество данного файла.

В моем случае у меня есть файл с 16 миллионами строк, сохраненный как.rds (а также как.feather, так как я играл со скоростью обоих форматов), и я хотел бы импортировать его подмножество (скажем, несколько строки или несколько столбцов) для первоначального анализа.

Является ли это возможным? ReadRDS(), похоже, не принимает никаких поднаборов, в то время как read_feather() не позволяет выбирать строки (хотя вы можете указать столбцы). Должен ли я рассмотреть другой формат данных?

1 ответ

Решение

С помощью readr::read_csv вы могли бы использовать n_max параметр и прочитайте столько строк, сколько хотите.

С readRDSЯ полагаю, вы могли бы прочитать файл dplyr::sample_n а затем просто стереть его из памяти rm(object),

Если вы не можете прочитать весь файл в память, вы можете использовать либо sqliteили другую базу данных, которая является предпочтительным способом, или вы можете попробовать что-то вроде readr::read_delim_chunked, который позволяет вам читать файл в чанках, делать что-то с чтением чанка (например, sample_n), удалять чук чтения из памяти и сохранять только результат обратного вызова и так продолжать до тех пор, пока файл не закончится.

Короткий ответ - нет'. Хорошей альтернативой является fst формат файла, который позволяет извлекать выборку столбцов и строк из большого набора данных. Больше информации здесь.

Другие вопросы по тегам