【发布时间】:2015-03-03 16:07:02
【问题描述】:
您好,提前感谢您。我在 Windows Server 上使用 Rx64 版本 3.1.2,并有一个从包 bigmemory 生成的文件支持的大矩阵,我试图在线性编程问题中使用它。该矩阵为 7062 行 x 364520 列,共有 2574240240 个条目(整数)。
当我运行线性程序的行时,我得到以下错误:
Error in GetElements.bm(x, i, j) :
Too many indices (>2^31-1) for extraction.
我读到的那个数字 2147483647 是 R 允许任何对象的最大条目数,即使在 64 位进程上也是如此。我读过here 我可以使用 R 的“实验版”来解决这个问题,但我希望最近有一个可用的解决方案。我有以下支持输出来确认我的 R 版本:
> version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 1.2
year 2014
month 10
day 31
svn rev 66913
language R
version.string R version 3.1.2 (2014-10-31)
nickname Pumpkin Helmet
> Sys.getenv("R_ARCH")
[1] "/x64"
【问题讨论】:
-
R 从版本 3 开始支持长向量,所以问题可能出在 bigmemory 上。
-
错误被硬编码到bigmemory.cpp中:goo.gl/QYQfga
-
@James 所以如果我编辑 bigmemory.cpp 并删除所有提及该硬编码错误的内容,它会解决问题吗?
-
它可能。我建议给包作者发邮件征求他的意见。
-
好的,谢谢!
标签: r memory 64-bit linear-programming