У меня есть несколько сотен больших выходов модели (8 Гб), каждый из которых сохраняется в виде списка, содержащего много элементов (и подэлементов). Для дальнейшей работы со всеми этими выходами невозможно загрузить все 100 ГБ файлов сразу в среду, и я наткнулся на lazyLoad
как возможное решение здесь , здесь и здесь . Но мне пока не удалось заставить код работать!
Я подозреваю, что проблема может быть связана с сохранением данных с использованием saveRDS()
вместо save()
(если я пытаюсь load()
сохранить файл с saveRDS()
это дает ошибку) но я не уверен.
У меня есть два вопроса:
1) Является ли lazyLoad
правильным способом справиться с большими выходами для индексации и загрузка отдельных уровней структуры данных при вызове, а не хранение всего в памяти?
2) Что я делаю не так?
Я сделал несколько попыток в соответствии с этим:
e = local({readRDS("path/to/file.RData"); environment()})
tools:::makeLazyLoadDB(e, "path/to/file")
lazyLoad("path/to/file")
Но последняя строка (lazyLoad("path/to/file")
дает NULL
в результате.
Поскольку это общая проблема, я не создал поддельную структуру данных в качестве воспроизводимого примера, но могу сделать так что если потребуется.
Я благодарю вас!