【发布时间】:2017-07-15 13:45:46
【问题描述】:
当我恼人地运行以下代码时,我遇到了一个非常预期的问题,该代码为指定序列创建所有可能的组合,然后将它们存储在 final.grid 变量中。问题是,不仅有一个序列,而且大约有数十万个序列,每个序列都可以有足够的组合。
for()...
combs = get.all.combs(sequence)
final.grid = rbind(final.grid, combs)
无论如何。尝试在具有 4GB RAM 的 Windows PC 中运行我的代码,并在 4 小时后(甚至没有计算出一半的组合)R 返回此错误
错误:无法分配大小为 4.0 Gb 的向量
我的解决方案是在每次迭代后将 final.grid 写入文件,释放分配的内存并继续。事实是,我没有使用 R 进行此类实现的经验,我不知道选择哪种解决方案以及是否有一些解决方案会做得更好、更有效。请记住,我的最终网格可能需要一些 GB。
在堆栈交换的某个地方,我读到了有关 ff 包的信息,但没有关于该主题的足够讨论(至少我没有找到它)并且更愿意在这里征求您的意见。
谢谢
【问题讨论】:
标签: r out-of-memory allocation