Ben*_*ker 24
如果您愿意使用R的开发版本,则可以获得此功能的实验支持.来自http://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html:
长传
在64位平台上,支持长度超过2 ^ 31 - 1个元素的向量已经开始了.这适用于原始,逻辑,整数,双精度,复数和字符向量以及列表.(字符向量的元素仍然限制在2 ^ 31 - 1个字节.)
所有方面目前都是实验性的
这些向量可以做什么目前有些限制,并且大多数操作将返回错误'尚未支持的长向量'.它们可以序列化和反序列化,强制,same()和object.size()工作和手段可以计算.它们的长度可以通过xlength()获取和设置:在长向量上调用length()会引发错误.
索引的大多数方面都可用.通常,双值指数可用于访问超过2 ^ 31 - 1的元素.
请参阅链接查看更多细节.我自己没有尝试过这个,所以我不能评论它是否实际有用.
如果你去http://developer.r-project.org/R_svnlog_2011(和http://developer.r-project.org/R_svnlog_2012)并搜索"长向量",你就可以了解到的工作是什么.继续
Jos*_*ien 15
以下是一些补充Ben的答案的细节.这些限制似乎是从用于构建R的低级编程语言继承而来的,特别是(显然)FORTRAN代码.因此,显然,转换R以便它可以充分利用64位寻址系统将是一个重大项目.
即使在64位版本的R上,R对象的大小也有限制(参见help("Memory-limits"),其中一些源于使用32位整数(特别是在FORTRAN代码中).在所有版本中R的最大长度(元素数)是2 ^ 31-1,大约20亿,而在64位构建中,分配的内存块的大小限制为2 ^ 34-1字节(8GB)预计这些将最终被提升*但是8GB对象的需求是(当2011年写的时候)特殊.
(手册中也有一个歪歪扭势的脚注,我已经写了一个*,注意到"这个评论自2005年以来一直在手册中.":)