Сохранение одного объекта в функции в R: размер файла RData очень велик
Я пытаюсь сохранить обрезанные объекты GLM в R (т.е. со всеми «несущественными» характеристиками, установленными в NULL, например, невязки, prior.weights, qr $ qr).
В качестве примера рассмотрим наименьший объект, с которым мне нужно это сделать:
print(object.size(glmObject))
168992 bytes
save(glmObject, "FileName.RData")
Присвоение этого объекта в глобальной среде и сохранение приводит к файлу RData размером около 6 КБ.
Однако мне фактически нужно создать и сохранить объект glm внутри функции, которая сама по себе находится внутри функции. Так что код выглядит примерно так:
subFn <- function(DT, otherArg, ...){
glmObject <- glm(...)
save(glmObject,"FileName.RData")
}
mainFn <- function(DT, ...){
subFn(DT, otherArg, ...)
}
mainFn(DT, ...)
Что приводит к гораздо большим размерам файлов RData размером около 20 МБ, несмотря на то, что сам объект имеет одинаковый размер.
Так что я понимаю, что это проблема окружающей среды, но я изо всех сил пытаюсь точно определить, как и почему это происходит. Полученный размер файла может сильно отличаться. Я пытался использовать saveRDS, и в равной степени я пытался назначить glmObject через << - чтобы сделать его глобальным, но, похоже, ничего не помогло.
Мое понимание окружения в R явно не очень хорошее, и я был бы очень признателен, если бы кто-нибудь мог предложить способ обойти это. Благодарю.