【发布时间】:2021-11-28 14:37:16
【问题描述】:
我在 R 中有一个相当大的稀疏矩阵:
> dim(matrix)
[1] 60675 36807
现在,我想使用以下方法计算此矩阵的行方差:
apply(matrix,1,var)
Error in asMethod(object) :
Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 102
我想我的矩阵太大了,无法正常工作。 我的解决方案是使用多个内核来解决这个问题,如下所示:
mclapply(Matrix::t(matrix), var, mc.cores=16)
Error in asMethod(object) :
Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 102
但正如您所见,我再次遇到同样的错误。 你对如何处理这个问题有什么建议吗?也许对矩阵进行子集化然后计算方差?
【问题讨论】:
-
你能看看this article吗?我认为这可能会解决您的问题...
-
你能告诉我们
class(matrix)吗? -
如果(1)您需要它比我当前的解决方案快得多并且(2)您给我们更多的上下文/minimal reproducible example(度稀疏/稀疏模式,速度要求...)
-
我有 RNAseq 表达矩阵数据,我想过滤掉低方差基因(行)。
-
我不能真正告诉你稀疏度(由于大小问题再次无法计算它),但有大约 42k 行的行和为 0。我还考虑过先删除它们,这会减小这个矩阵的大小。