大家好,
我试图加载一定数量的Affymetrix CEL文件,使用标准的BioConductor命令(64位linux上的R 2.8.1,72 GB的RAM)
abatch<-ReadAffy()
Run Code Online (Sandbox Code Playgroud)
但我不断收到这条消息:
Error in read.affybatch(filenames = l$filenames, phenoData = l$phenoData, :
allocMatrix: too many elements specified
Run Code Online (Sandbox Code Playgroud)
这个allocMatrix错误的一般含义是什么?有没有办法增加其最大尺寸?
谢谢
问题是所有核心函数都使用INT而不是LONG来生成R对象.例如,您的错误消息来自/ src/main中的array.c
if ((double)nr * (double)nc > INT_MAX)
error(_("too many elements specified"));
Run Code Online (Sandbox Code Playgroud)
其中nr和nc是之前生成的整数,代表矩阵的行数和列数:
nr = asInteger(snr);
nc = asInteger(snc);
Run Code Online (Sandbox Code Playgroud)
因此,为了缩短它,源代码中的所有内容都应该更改为LONG,可能不仅在array.c中,而且在大多数核心函数中,这需要一些重写.很抱歉没有更多的帮助,但我想这是唯一的解决方案.或者,你可能会在明年等待R 3.x,并希望他们能够实现这个......