2012-11-14 26 views

回答

6

在您撥打glm時設置model = FALSE應該防止model.frame被退回。同時設置y = FALSE將防止返回響應向量。 x = FALSE是默認設置,可防止返回model.matrix

這種組合應該縮小glm對象的大小。

當然,你也可以用coef(model_glm)提取係數,或標準錯誤,

summary(model_glm)$coef 
+0

你看過最終的模型嗎?它仍然很重:殘差,擬合值和完整的qr矩陣。 'biglm'包返回的模型對象更輕。 – hadley

+0

是的,'bigglm'函數可能是一個可行的選擇。如果你發佈一個答案,它會得到我的投票。儘管如此,在保存之前,仍然可以從glm對象中僅選擇所需的組件。 – BenBarnes

0

您可以在保存之前NULL模型對象中的數據。我做了一個快速測試,並且仍然產生了預測。

model_glm$data <- NULL 
6

我有這個問題,我在那裏運行GLM在生產中的R和GLM的大小的部分大大減慢我失望。我發現我需要殺死更多的不僅僅是$dataHere是我的貼子,下面有一個例子。

> object.size(sg) 
96499472 bytes 
> sg$residuals <- NULL 
> sg$weights <- NULL 
> sg$fitted.values <- NULL 
> sg$prior.weights <- NULL 
> sg$na.action<- NULL 
> sg$linear.predictors <- NULL 
> sg$fitted.values <- NULL 
> sg$effects <-NULL 
> sg$data <- NULL 
> object.size(sg) 
3483976 bytes 
> sg$qr$qr <- NULL 
> object.size(sg) 
79736 bytes 
+0

只是一個評論...在你的博客,你幾乎可以讀黃色突出顯示的東西 –

+0

你也可以做'sg [c(「residuals」,「weights」,「fitted.values」)] < - NULL'你在哪裏做這個向量包括你想要擺脫的所有東西的名字。 – Dason

+1

@RichardScriven哦,我的 - 它燒傷了我的眼睛。 – Dason