R中的大协方差矩阵

7
从基因表达数据(40000个基因(变量)x 30个观测值)中,我想创建一个40000 x 40000的协方差矩阵。这肯定比我的RAM大。使用“ff”包,我成功地预先分配了一个40000x40000的空矩阵用于相关性计算。然而,“cov”或“cor”函数只能在我的系统上处理5000x5000的协方差矩阵,因此我必须进行分块1:5000、5001:10000等协方差计算,并沿对角线填充预分配的矩阵。有人知道一种算法来填补矩阵中的“缺失区域”,即1和22000之间的协方差(或相关性)。我知道我可以做所有成对组合,并逐个填写矩阵,但是'cor'非常快...那么,是否有一种方法可以使用已经计算出的协方差来计算1/22000的cov(或cor)呢?谢谢!
1个回答

1
你可以使用带有 2 个参数的 cov 函数计算非对角线块。
cov( x[,1:5000], x[,5001:10000] )

1
我觉得这个问题是关于相关矩阵的,而你的回答是关于相关系数的。这些概念是相关的,但不同的。 - Ricardo Magalhães Cruz
Andrej将这个想法转化为一个代码片段,以处理大矩阵。 - Tapper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,