是否可以对 bigmemory 包中的 big.matrix 个对象进行转置?
Is it possible to do transpositions of big.matrix objects from the bigmemory package?
我想执行一个非常大的 bigmemory big.matrix B 的转置,以便我可以计算 ABT。这在大内存中可能吗?更重要的是我怎样才能找到关于这个的文档?在这篇关于 bigmemory 的论文的第 5 页 http://www.stat.yale.edu/~mjk56/temp/bigmemory-vignette.pdf,作者说该包还支持 prod()、colmean()、colsd() 等操作,但我找不到这方面的文档。
该文档在这一点上相当陈旧,而且正在迅速变得越来越陈旧。我是 bigmemory 包的当前开发人员之一。我们已经开始对 bigmemory 包进行大量新更新,以使其更加现代和易于访问。我们希望尽快向 CRAN 发布新的更新版本。
也就是说,转置功能实际上是 bigalgebra
包的一部分。目前,它正在大力发展,我一直致力于扩展功能以包括更简单的功能,如 t
。公平警告,您很有可能会发现一两个错误。所以,在这里说了太多之后可能是一个潜在的解决方案。
安装我当前的 bigalgebra
开发分支
library(devtools)
# probably also install dev bigmemory
# install_github("kaneplusplus/bigmemory")
install_github('cdeterman/bigalgebra')
这将为您提供 big.matrix
对象的 t
方法。
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
包中创建相应的绑定。
我想执行一个非常大的 bigmemory big.matrix B 的转置,以便我可以计算 ABT。这在大内存中可能吗?更重要的是我怎样才能找到关于这个的文档?在这篇关于 bigmemory 的论文的第 5 页 http://www.stat.yale.edu/~mjk56/temp/bigmemory-vignette.pdf,作者说该包还支持 prod()、colmean()、colsd() 等操作,但我找不到这方面的文档。
该文档在这一点上相当陈旧,而且正在迅速变得越来越陈旧。我是 bigmemory 包的当前开发人员之一。我们已经开始对 bigmemory 包进行大量新更新,以使其更加现代和易于访问。我们希望尽快向 CRAN 发布新的更新版本。
也就是说,转置功能实际上是 bigalgebra
包的一部分。目前,它正在大力发展,我一直致力于扩展功能以包括更简单的功能,如 t
。公平警告,您很有可能会发现一两个错误。所以,在这里说了太多之后可能是一个潜在的解决方案。
安装我当前的 bigalgebra
library(devtools)
# probably also install dev bigmemory
# install_github("kaneplusplus/bigmemory")
install_github('cdeterman/bigalgebra')
这将为您提供 big.matrix
对象的 t
方法。
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
包中创建相应的绑定。