Вы можете использовать ffsave()
, чтобы сохранить список объектов, но он ожидает, что список имен, которые могут быть решены в текущей среде. Однако вы можете написать свою собственную вспомогательную функцию, чтобы каждый объект (df) в списке в переменную и использовать ffsave для сохранения этих объектов. Что-то вроде этого:
saveList <- function(lst, fname) {
outlist = c()
for (i in 1:length(lst)) {
name = paste0('out_',i)
outlist = c(outlist, name)
assign(name, lst[[i]])
}
ffsave(list=outlist, file=fname)
}
При загрузке этого файла с ffload()
вы получите кучу объектов имена out_1, out_2, ... в текущей среде. Вы, вероятно, не хотите этого, так что вам нужно еще вспомогательную функцию, чтобы положить вещи обратно в список:
loadList <- function(fname) {
ffload(fname)
objs = ls(pattern="out")
outlist = list()
for (o in objs) {
idx= as.integer(strsplit(o,"_")[[1]][2])
outlist[[idx]] = get(o)
}
outlist
}
Примечание: исходный код должен быть изменен/продлен, если вы хотите использовать имена вместо числовых значения индекса.
Почему бы просто не использовать 'save (Z, file =" Z.Rdata ")' ... работал нормально, когда я это пробовал ?! – holzben
@holzbrn Поскольку файл ff сохраняется в каталоге temp и будет удален. После того, как вы перегрузите 'Z.Rdata', попробуйте ввести' Z [[1]] ', и вы получите что-то вроде' открытия ff C:/Users /..../ AppData/Local/Temp/RtmpO47OSM/ffdf5645baa5ac8.ff'. – Jase
А, ок! Я просто перезапустил сеанс, а не компьютер! Извините .. – holzben