是否有可能从bigmemory包中转换big.matrix对象?

时间:2015-06-02 15:44:49

标签: r r-bigmemory

我想执行一个非常大的bigmemory big.matrix B 的转置,以便我可以计算 AB T 。在bigmemory中这可能吗?更重要的是,我如何才能找到关于此的文档?在本文的第5页上,关于bigmemory http://www.stat.yale.edu/~mjk56/temp/bigmemory-vignette.pdf,作者说该软件包还支持prod(),colmean(),colsd()等操作,但我找不到相关的文档。

1 个答案:

答案 0 :(得分:2)

此时的文档相当陈旧,并且正在迅速变得如此。我是bigmemory包的当前开发者之一。我们已经开始对bigmemory包进行了一些新的更新,使其更加现代化和易用。我们希望很快就会向CRAN发布一个新的更新版本。

也就是说,转置功能实际上是bigalgebra包的一部分。目前,我正在大力发展,我一直在努力扩展功能,以包括更简单的功能,如t。公平的警告,你很有可能会发现一两个bug。因此,在谈论之后,或许这里是一个潜在的解决方案。

安装bigalgebra

的当前开发分支
library(devtools)
# probably also install dev bigmemory
# install_github("kaneplusplus/bigmemory")
install_github('cdeterman/bigalgebra')

这将为t个对象提供big.matrix方法。

library(bigalgebra)
set.seed(123)
bm <- as.big.matrix(matrix(rnorm(25), nrow=5))
bm[]
            [,1]       [,2]       [,3]       [,4]       [,5]
[1,] -0.56047565  1.7150650  1.2240818  1.7869131 -1.0678237
[2,] -0.23017749  0.4609162  0.3598138  0.4978505 -0.2179749
[3,]  1.55870831 -1.2650612  0.4007715 -1.9666172 -1.0260044
[4,]  0.07050839 -0.6868529  0.1106827  0.7013559 -0.7288912
[5,]  0.12928774 -0.4456620 -0.5558411 -0.4727914 -0.6250393

t(bm)[]
           [,1]       [,2]       [,3]        [,4]       [,5]
[1,] -0.5604756 -0.2301775  1.5587083  0.07050839  0.1292877
[2,]  1.7150650  0.4609162 -1.2650612 -0.68685285 -0.4456620
[3,]  1.2240818  0.3598138  0.4007715  0.11068272 -0.5558411
[4,]  1.7869131  0.4978505 -1.9666172  0.70135590 -0.4727914
[5,] -1.0678237 -0.2179749 -1.0260044 -0.72889123 -0.6250393

一个跟进点,您似乎对两个矩阵的tcrossprod特别感兴趣。我会记住这一点,以便在bigalgebra包中创建相应的绑定。