如何转置 big.matrix 对象?

Posted

技术标签:

【中文标题】如何转置 big.matrix 对象?【英文标题】:How to take transpose of a big.matrix object? 【发布时间】:2018-03-02 17:49:56 【问题描述】:

如何对 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 库。还是行不通。

【问题讨论】:

library(bigpca) 似乎表明它包含functions for transposing, using multicore 'apply' functionality, data importing and for compact display of big.matrix objects. 【参考方案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[]))

【讨论】:

我无法安装 devtools::install_github 方式。有没有其他方法可以安装? 这是为什么呢?您可以在本地克隆 repo,然后在 RStudio 中使用 Ctrl/Cmd + Shift + B 自行构建。 被 IT 部门阻止了,我想。当我尝试安装时,它显示Installation failed: Could not resolve host: raw.githubusercontent.com 我使用线性代数技术完全缓解了这个问题。所以,不。没有安装。 @xkcvk2511 请注意,bigstatsr 现在也在 CRAN 上。

以上是关于如何转置 big.matrix 对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何利用SPSS软件转置数据?

如何释放崩溃 R 会话的 big.matrix 对象使用的内存

SPSS软件中如何对数据进行转置

在 Python 中懒惰地转置一个列表

大查询 - 将数组/json 对象转置为列

将 groupby 或 datetime 对象转换/拆分和转置为数据框