具有大代数的R中的大矩阵运算

时间:2018-08-08 13:39:00

标签: r

我想将两个大矩阵相乘,然后将列函数应用于所得矩阵。鉴于我没有足够的内存来分配这些对象,我尝试了bigalgebra包,该包允许计算一些矩阵运算,但此处没有所需的运算。

我的脚本如下:

library(bigalgebra)

X <- as.big.matrix( matrix(rnorm(265225*360), nrow = 265225, ncol = 360) )
Y <- as.big.matrix( matrix(rnorm(360*10000),  nrow = 360,    ncol = 265225) )
Z <- X %*% Y # Z is a big.matrix object

apply(Z, 2, function(x) sqrt(sum(x^2)))
# > Error: in as.vector(data) : no method for coercing this s4 to class to a vector

apply(as.matrix(Z), 2, function(x) sqrt(sum(x^2)))
# > Error: cannot allocate vector of size 19.5 Gb

如何处理该对象?而且,有没有更好的方法/更快地达到相同的结果?

0 个答案:

没有答案