我必须在R上的一个非常大的矩阵(24 x 2 ^ 32)上进行SVD。这个矩阵稀疏度小于0.01%。我可以使用simple_sparse_array
包中的slam
类来存储此矩阵。
首先,我尝试使用sparseMatrix
(在Matrix
包中)和irlba
。
我可以使用这个来计算60k x 60k矩阵上的SVD。
不幸的是,似乎sparseMatrix
无法存储这个巨大的矩阵。
sparseMatrix(i=1,j=1,x=1,dims=c(24,2^32))
#Error in if (any(Dim < 0)) return("Dim slot must contain non-negative values") :
#missing value where TRUE/FALSE needed
#In addition: Warning message:
#In sparseMatrix(i = 1, j = 1, x = 1, dims = c(24, 2^32)) :
#NAs introduced by coercion
我最多可以使用750G RAM一周。什么是最好的解决方案?