附录G 处理大数据
R将所有的对象都存储在虚拟内存中。对于大部分人而言,这种设计可以带来很好的交互体验,但如果要处理大型数据,这就会影响程序的运行速度,带来和内存相关的错误。
具体的内存限制取决于R的版本(32位或64位)和所使用的操作系统。以cannot allocate vector of size
开头的错误信息通常都是因为无法获得足够的连续内存空间,以cannot allocate vector of length
开头的错误信息表示超过了内存地址的限制。在处理大型数据时,应该尽可能地用64位版。无论是什么版本,单个向量中元素数量的上限都是2 147 483 647(详见?Memory
)。
在处理大数据时,要考虑三个问题:(a)高效执行的程序,(b)将数据保存到外部避免内存问题,以及(c)用有针对性的统计方法高效地分析海量数据。我们会对这三个问题做简要介绍。