R LM内存大小

时间:2017-04-24 07:14:28

标签: r memory

我有一个包含以下内容的大数据集:

  • 5M行
  • 11列,其中两列是分类,每列有8k +级别)
  • 还使用contr.sum来更改因子变量的效果编码

目前,由于项目限制,biglm,ff和其他大数据包/基础设施不是一种选择,因此我遇到了129 GB的RAM并且只能使用lm包来获得系数估计值和p值。

鉴于我只加载了回归所需的表并在运行LM之前执行了gc(),每次运行回归时,R估计在执行之前它将分配多少内存来构建伪矩阵回归,因此流行的"不能分配大小为XX的载体"错误。问题是,让我们说我已将因子水平降低到每个2k并且仅将行减少到1.5M(通过手动子集和最佳分配采样),回归运行1.5天(仍然没有并行化)但是它无法写入LM模型,因为输出没有剩余内存。

我想问一下R如何将每个变量存储在RAM中 - 数字,整数,因子,字符等。

例如,当我在R:

中加载时,data.frame的任意维度
  • 对象大小约为50 MB
  • 当我将其保存为RDS时,它压缩为5 MB
  • 但是当我将其保存为RData时,它会增加到近300 MB。

我想了解如何估计LM需要多少内存才能运行回归并存储LM对象。而且,R如何将它存储在RAM中,为什么它会产生如此多的开销。

0 个答案:

没有答案