结合循环

时间:2011-03-18 13:50:13

标签: r loops for-loop

我对我的代码有两个问题。首先,我将向您展示代码:

partialname5 <- "EV"
EV <- ttest[grep(partialname5, rownames(ttest)),]
partialname1 <- "MYC"
MYC <- ttest[grep(partialname1, rownames(ttest)),]
MYCEV<-list() 
for (j in 1:ncol(MYC)) {
     t1<-t.test(MYC[,j], (EV[,j]))$p.value
     MYCEV[[j]]<- matrix(t1)
}

partialname2 <- "OBX"
OBX <- ttest[grep(partialname2, rownames(ttest)),]
OBXEV<-list() 
for (k in 1:ncol(OBX)) {
     t2<-t.test(OBX[,k], (EV[,k]))$p.value
     OBXEV[[k]]<- matrix(t2)
}

partialname3 <- "WDR"
WDR <- ttest[grep(partialname3, rownames(ttest)),]
WDREV<-list() 
for (l in 1:ncol(WDR)) {
     t3<-t.test(WDR[,l], (EV[,l]))$p.value
     WDREV[[l]]<- matrix(t3)
}

partialname4 <- "PIM"
PIM <- ttest[grep(partialname4, rownames(ttest)),]
PIMEV<-list() 
for (m in 1:ncol(PIM)) {
     t4<-t.test(PIM[,m], (EV[,m]))$p.value
     PIMEV[[m]]<- matrix(t4)
}

我的第一个问题是,是否可以通过这种方式填写我的部分名称:

partialnames<- c('EV','PIM','OBX','MYC','WDR') 

然后在第一个循环中取第一个参数。

第二个问题是可以为所有partialnames组合这个循环吗?

谢谢!

萨曼莎

1 个答案:

答案 0 :(得分:0)

一个可重复的例子会有所帮助,但简短的回答是肯定的。我想你正试图为每一列确定EV,PIM,OBX,MYC和WDR的变量(rownames)的所有值组合。是吗?

如果是这样,这可能会奏效,但如果没有可重复的例子,很难说清楚。

splits <- c('EV', 'PIM', 'OBX', 'MYC', 'WDR')
results <- list()
for(i in 1:length(splits) {
 for(j in 1:length(splits) {
   for(k in 1:ncol(ttest)) {
    results[i][j][k] <- t.test(ttest[rownames(ttest)==splits[i],k], ttest[rownames(ttest)==splits[j],k])
   }
 }
}