如何在R中的两个bigmatrices上有效地运行corr.test

时间:2016-10-11 08:54:02

标签: r matrix correlation psych

我有两个矩阵,每个矩阵包含300行和40k列。 我试图在下面的例子a和b中定义的这两者之间找到相关性(使用来自“psych”-r package的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

0 个答案:

没有答案