0
我正在使用函數從多個HWE卡方檢驗中獲取p值。我正在遍歷一個名爲geno.data
的大矩陣,它是(313行x 355232列)來執行此操作。我基本上是逐行循環兩列矩陣。它運行非常緩慢。我怎樣才能讓它更快?由於如何讓我的循環在R中運行得更快?
library(genetics)
geno.data<-matrix(c("a","c"), nrow=313,ncol=355232)
Num_of_SNPs<-ncol(geno.data) /2
alleles<- vector(length = nrow(geno.data))
HWE_pvalues<-vector(length = Num_of_SNPs)
j<- 1
for (count in 1:Num_of_SNPs){
for (i in 1:nrow(geno.data)){
alleles[i]<- levels(genotype(paste(geno.data[i,c(2*j -1, 2*j)], collapse = "/")))
}
g2 <- genotype(alleles)
HWE_pvalues[count]<-HWE.chisq(g2)[3]
j = j + 2
}
請參閱http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – csgillespie 2014-11-24 15:47:37
所以你正在做'選擇(355232,2)'chisq測試?你碰巧認識fortran嗎? – rawr 2014-11-24 15:53:30
@rawr我不知道fortran。我正在使用R包中的函數來進行卡方檢驗。這是特定於我的問題。 – cooldood3490 2014-11-24 16:03:42