我有两个矩阵,每个矩阵包含 300 行和 40k 列。我试图在下面的示例a和b中定义的这两者之间找到相关性(使用“psych”-R包中的corr.test)。无论如何我可以让 corr.test 运行得更快吗?
library(bigmemory)
library(psych)
a<-read.big.matrix("a.matrix.t", head=T, sep='\t', type="char")
b<-read.big.matrix("b.matrix.t", head=T, sep='\t', type="char")
z <- corr.test(a[], b[], use = "pairwise", method = "pearson", ci=F)
c <- as.big.matrix(z$r)
p <- as.big.matrix(z$p)
write.big.matrix(c, "correlations.txt", col.names=TRUE, row.names=TRUE)
write.big.matrix(p, "adj.pvalues.txt", col.names=TRUE, row.names=TRUE)
示例文件:
> a
r1 r2 r3
s1 1 1 4
s2 2 2 6
s3 3 3 9
s4 4 4 12
s5 5 5 6
> b
g1 g2 g3
s1 6 5 7
s2 7 4 4
s3 8 3 3
s4 9 2 3
s5 10 1 9
> corr.test(a,b)
cor adj-pvalue
r1,g1 1.0000000 0.00000001
r2,g2 1.0000000 0.00000007
r3,g3 0.5050763 0.00006986