我有一个包含以下内容的大数据集:
目前,由于项目限制,biglm,ff和其他大数据包/基础设施不是一种选择,因此我遇到了129 GB的RAM并且只能使用lm包来获得系数估计值和p值。
鉴于我只加载了回归所需的表并在运行LM之前执行了gc(),每次运行回归时,R估计在执行之前它将分配多少内存来构建伪矩阵回归,因此流行的"不能分配大小为XX的载体"错误。问题是,让我们说我已将因子水平降低到每个2k并且仅将行减少到1.5M(通过手动子集和最佳分配采样),回归运行1.5天(仍然没有并行化)但是它无法写入LM模型,因为输出没有剩余内存。
我想问一下R如何将每个变量存储在RAM中 - 数字,整数,因子,字符等。
例如,当我在R:
中加载时,data.frame的任意维度我想了解如何估计LM需要多少内存才能运行回归并存储LM对象。而且,R如何将它存储在RAM中,为什么它会产生如此多的开销。