我在我的电脑上拥有6GB 的内存(Windows 7 Pro 64位),在使用R时,我得到
> memory.limit()
6141
当处理大数据时,内存分配错误是很常见的。因此为了让R使用虚拟内存,我使用
> memory.limit(50000)
现在,当我运行我的脚本时,不再出现内存分配错误,但 R 占用了计算机的所有内存,所以在脚本完成之前我无法使用该计算机。我想知道是否有更好的方法让 R 管理机器的内存。我认为它可以做的一件事是,如果它正在使用超过用户指定的物理内存,则使用虚拟内存。是否有这样的选项?
m = matrix(rnorm(1000), 20000, 10)
,那么对象之间的大小差异变得微不足道。实际上,对于我工作区中的某些随机data.frame
进行检查,matrix
版本要大2倍。因此,我认为这个建议对手头的问题没有用处。 - eddidata.frame
的情况。object.size(as.data.frame(rec)):11542192字节
和object.size(as.matrix(rec)):26516160字节
。 - eddid = data.frame(a = 1:100, b = "b")
- 尝试检查各种对象的大小。无法以比在data.frame
中更高效(无论是对于内存还是速度)地存储例如数字和字符串之类的内容,而不是在matrix
中。您的建议仅会为均匀类型的data.frame
节省微不足道的内存(大约600字节),并且对其他任何内容都不起作用。 - eddi