Можно ли импортировать подмножество больших файлов.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
формат файла, который позволяет извлекать выборку столбцов и строк из большого набора данных. Больше информации здесь.