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

Ответы на вопрос(2)

Ваш ответ на вопрос