【发布时间】:2014-11-24 15:32:17
【问题描述】:
我正在使用一个函数从多个 HWE 卡方检验中获取 p 值。我正在循环一个名为geno.data 的大矩阵,它是(313 行 x 355232 列)来执行此操作。我基本上是逐行循环矩阵的两列。它运行得很慢。我怎样才能让它更快?谢谢
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
}
【问题讨论】:
-
所以你在做
choose(355232, 2)chisq 测试?你碰巧知道fortran吗? -
@rawr 我不知道 fortran。我正在使用 R 包中的函数进行卡方检验。这是针对我的问题的。
标签: r performance loops