Tom*_*mmy 13
R中向量的理论极限是2147483647个元素.所以这大约是10亿行/ 2列.
...但是这些数据量不适合4 GB的内存......尤其是字符向量中没有字符串.每个字符串至少为96个字节(object.size('a') == 96
),矩阵中的每个元素都是这样一个字符串的指针(8个字节)(尽管每个唯一字符串只有一个实例).
所以通常会发生的事情是机器开始使用虚拟内存并开始交换.大量交换通常会杀死本世纪所有希望 - 特别是在Windows上.
但是如果你正在使用一个包(igraph?)并且你要求它生成矩阵,它可能会做很多内部工作并创建许多辅助对象.因此,即使您没有接近单个结果矩阵的内存限制,用于生成它的算法也会耗尽内存.它也可能是非线性的(二次或更差),这将再次扼杀本世纪永远完成的所有希望......
一个好的研究方法可能是将它计时在一个小图上(例如使用system.time
),再次将图形尺寸加倍几次.然后你可以看到时间是线性的还是二次的,你可以估计完成大图所需的时间.如果预测说一周,那么你知道;-)