我在64位Windows 10上使用16 GB RAM运行R版本3.3.2 x64到R studio。
我的memory.limit()
是[1] 16274
mb我正在使用dummy.code()
为数据框创建虚拟对象,其中有445,622行和2,699个唯一值,我正在生成假人(所以期待445,622 x 2,699矩阵)。
在致电dummy.code()
之前,我的memory.size()
是[1] 160.97
mb。但是,我收到了典型的内存错误:
Error: cannot allocate vector of size 9.0 Gb
我明显的问题是,为什么会出现这种情况,因为16274
- 160.97
> 9.0 Gb
。我怀疑"可能没有足够大的连续地址空间块来映射它" 但是这个解释给出了here 32位建立。
另外,我发现在初始化具有这些尺寸的零矩阵时,
m <- matrix(0, 445622, 2699)
创建没有问题所以这似乎不是原因。
> memory.size()
[1] 9204.29
但这让我想知道是否可能有一种方法可以使用预先分配的矩阵来放置假人,然后在我的lm
模型中使用它们?
我的逻辑中发现的任何错误或误解,请指出..