R,RAM数量以及避免内存错误的特定限制

时间:2014-01-24 14:27:39

标签: r memory memory-management

我已经阅读了有关R的各种大数据包。许多似乎都可行,但至少在我理解这个问题时,我喜欢用于常见模型的许多软件包都不能与推荐的大数据一起使用软件包(例如,我使用lme4,VGAM和其他相当常见的回归分析软件包,这些软件包似乎不能与各种大数据包如ff等配合使用。)

我最近尝试使用VGAM使用一般社会调查的数据进行多元模型。当我抛出一些模型来运行,这些模型占了多年来受访者的聚类以及其他控件的列表时,我开始点击整个“无法分配大小yadda yadda的矢量......”我尝试了各种推荐项目,如作为清除内存并尽可能使用矩阵没有好的效果。我倾向于增加机器上的内存(实际上只是购买一台内存更多的新机器),但是我想知道在新机器上放弃1500美元之前是否能解决我的问题,特别是这仅供我个人使用,我将全部由我的研究生预算资助。

目前我正在运行一台带有16GB RAM,R 3.0.2的Windows 8机器,我使用的所有软件包都已更新到最新版本。我通常使用的数据集最多可达100,000个个案/受访者。就分析而言,我可能需要具有多行的矩阵和/或数据帧,例如,我使用15个变量,这些变量具有多个级别的因子之间的相互作用,或者如果我需要在矩阵中为每个100,000个行中包含多行基于每个受访者对每个类别的DV进行整形的情况。对于某些社会科学工作而言,这可能是一个很大的影响,但我觉得在宏观方案中,就数据分析而言,我的要求实际上并不是那么重要。我相信很多R用户会对更大的数据做更强烈的分析。

所以,我想我的问题是这个 - 考虑到我通常使用的数据大小和分析类型,为了避免内存错误和/或必须使用特殊包来处理我正在运行的数据/进程的大小?例如,我正在关注一台运行32GB RAM的机器。会削减吗?我应该使用64GB内存吗?或者我真的需要咬紧牙关,可以这么说,并开始学习使用R与大数据包或者只是找到不同的统计数据包或学习更强烈的编程语言(甚至不确定那将是什么,Python, C ++ ??)。从长远来看,后一种选择当然是好的,但目前对我来说相当禁止。我在几个项目的中游,我遇到类似的问题,没有时间在截止日期前一起建立新的语言技能。

尽可能具体 - 在具有16GB,32GB和64GB RAM的好机器上,64位R的最大功能是多少?我四处搜索,并没有找到可以用来衡量我个人需求的明确答案。

1 个答案:

答案 0 :(得分:5)

一般的经验法则是R大致需要RAM中数据集大小的三倍才能够舒适地工作。这是由于在R中复制对象引起的。因此,将RAM大小除以3可以粗略估计最大数据集大小。然后,您可以查看所使用的数据类型,并选择所需的RAM数量。

当然,R也可以处理内存不足的数据,请参阅HPC task view。这个earlier answer of mine也可能是有意义的。