在R中创建一个非常大的稀疏矩阵

aar*_*njg 5 r sparse-matrix

我试图在R中创建一个10 ^ 5×10 ^ 5的大型稀疏矩阵,但是遇到了内存问题.

> Matrix(nrow=1e5,ncol=1e5,sparse=TRUE)
Error in Matrix(nrow = 1e+05, ncol = 1e+05, sparse = TRUE) : 
  too many elements specified
Run Code Online (Sandbox Code Playgroud)

看起来这是因为元素的数量大于2 ^ 31,这是最大整数值.但我在64位机器上运行它.

> .Machine$integer.max
[1] 2147483647
Run Code Online (Sandbox Code Playgroud)

有没有办法创建如此庞大的稀疏矩阵?

aar*_*njg 6

看起来诀窍是设置data=0而不是data=NA.

> Matrix(data=0,nrow=1e5,ncol=1e5,sparse=TRUE)
Run Code Online (Sandbox Code Playgroud)