如何转换big.matrix对象?

时间:2018-03-02 17:49:56

标签: r matrix bigdata r-bigmemory

如何转换big.matrix对象?

我有一个8000 x 8000 big.matrix对象,我需要执行转置和乘法。怎么做?

b <- as.big.matrix(basis)

bTransb <- t(b) %*% b

这给了我以下错误

Error in t.default(b) : argument is not a matrix

我导入了bigalgebra库。还是行不通。

1 个答案:

答案 0 :(得分:1)

我不确定{bigmemory},但你可以使用{bigstatsr}(免责声明:我是作者),它使用类似的格式。

# Sample data
a <- matrix(0, 8000, 8000); a[] <- rnorm(length(a))
# devtools::install_github("privefl/bigstatsr")
library(bigstatsr)
b <- as_FBM(a)
class(b)
btrans <- big_crossprodSelf(b)
dim(btrans)
class(btrans)
# Verification
all.equal(btrans[], crossprod(b[]))
相关问题