2011-03-18 107 views
0

我有兩個關於我的代碼的問題。首先,我會告訴你的代碼:組合for循環

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通過這種方式填寫:

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

然後由第一回路採取的第一個參數。

第二個問題是否可以將所有partialnames這個循環結合起來?

謝謝!

薩曼莎

+4

你可以用'sapply'來做到這一點。如果你提供一個最小的工作示例,我們可以告訴你如何。 – 2011-03-18 14:12:15

回答

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]) 
    } 
} 
}