我正在尝试使用cor.test函数进行相关,如下所示:
对于来自对象mr的每个字符串,我选择一个对象(mr1)并从表达式数据集中找到该mr1的相应目标,并创建新对象mr.tgt。
现在,对于mr.tgt中的每个字符串,cor.test在两个数字向量之间执行,1。匹配基因表达式值到mr.tgt [i]和2.匹配的mirna表达式值到mr1(或mr) [I])。
最后,表格是为相关值而编写的。
mr <- c("1p","2p","3p",...)
mr.tgt.pval.function <- function(mr){
file.out <- file.choose(new = TRUE)
for(i in 1:length(mr)){
mr1 <- as.character(mr[i])
mr.tgt <- c("a","b","c",..) # mr.tgt %in% mr = 0 & mr.tgt changes with each of mr1[i]
for(i in 1:length(mr.tgt)){
cor.result.pval <- cor.test(as.numeric(expr[which(rownames(expr) == mr.tgt[i]),]),
as.numeric(mir[which(rownames(mir) == mr1),]),
method="spearman", alternative="less", exact=NULL, continuity=T)
write.table(cbind(mr1,mr.tgt[i],cor.result.pval$p.value,cor.result.pval$estimate[[1]]),file = file.out, sep="\t", na='', append=T,col.names=FALSE)
}
}
}
我正在尝试对cor.test使用apply函数,但是在每个mr [i]中的每个mr.tgt [i]都难以迭代。
apply(?matched.expr.vector.mr.tgt.for.each.of.mr[i],
2,function(x) cor.test(?,?,method="spearman",alternative="l"))
我想看看是否可以使用apply函数来克服for循环的慢速数据处理。
非常感谢有用的提示。
谢谢!
答案 0 :(得分:0)
for循环开销不太可能成为瓶颈。我怀疑write.table
中的时间占主导地位,尽管cor.test
也可能很慢。
尝试评论write.table
部分并查看其变化速度。如果“解决”了这个问题,请尝试在循环中组装表并在之后写入。