在R中处理巨大的模拟

我写了一个R程序,可以生成一个长度为100万的随机向量。 我需要模拟它100万次。 在100万次模拟中,我将使用50K个观察向量(以某种随机方式选择)作为样本。 所以,50K cross 1M是样本大小。 有办法在R中处理它?

有几个问题和一些不太好的解决方案。

First R不能在我的机器中存储如此巨大的矩阵。 它超过RAM内存。 我查看了像bigmemory,ffbase等使用硬盘空间的软件包。 但是如此巨大的数据可能会在TB中占据大小。 我的机器中有200GB硬盘可用。

即使可以存储,也存在运行时间的问题。 代码可能需要超过100小时的运行时间!

任何人都可以请建议出路! 谢谢


这个答案真的代表了评论和答案之间的关系。 摆脱困境的简单方法是不使用这种海量数据集。 您可能最有可能采用合理大小的代表性数据子集(例如要求不超过几百MB)并以此方式训练您的模型。

如果必须在生产中使用具有数百万观测值的实际数据集的模型,那么问题将不再与R相关。


  • 如果可能的话,使用稀疏矩阵技术
  • 如果可能的话,尝试利用存储内存并将对象分块
  • 如果可能的话,尝试使用大数据工具,如H2O
  • 利用pbdR,并行等来利用多核和HPC计算
  • 考虑在AWS,Azure,DigitalOcean等平台上使用大数据/ HPC云VPS实例的实例实例。大多数提供预安装了R的分发版和高速RAM多核实例,您可以快速且便宜地完成
  • 尽可能使用抽样和统计解决方案
  • 考虑在关系数据库中执行一些模拟或预模拟步骤,或者Spark + Scala之类的步骤; 实际上,现在有些具有R整合
  • 链接地址: http://www.djcxy.com/p/31863.html

    上一篇: Handling huge simulations in R

    下一篇: Big matrix and memory problems