.RData-файлы не имеют индекса (содержимое сериализуется как один большой pairlist). Вы можете взломать способ пройти через список участников и назначить только записи, которые вам нравятся, но это нелегко, поскольку вы не можете сделать это на уровне R.
Однако вы можете просто преобразовать файл .RData в базу данных с отложенной загрузкой, которая сериализует каждую запись отдельно и создает индекс. Приятно, что загрузка будет по требованию:
# convert .RData -> .rdb/.rdx
e = local({load("New.RData"); environment()})
tools:::makeLazyLoadDB(e, "New")
После загрузки БД загружается только индекс, но не его содержимое. Содержимое загружается по мере использования:
lazyLoad("New")
ls()
x # if you had x in the New.RData it will be fetched now from New.rdb
Как и в load()
, вы можете указать среду для загрузки, чтобы вам не нужно было загрязнять глобальное рабочее пространство и т. Д.