2013-09-23 68 views
0

我一直在嘗試使用相同的循環用於不同的目的,它總是顯示編程的系列的最後一行。我需要選擇每六列,從第一個開始和結束從25(至30)循環,只適用於最後一行R

for(i in seq(1,25,by=6)) { 
    print(describe(scores[,c(i:i+5)])) 
} 

只顯示的信息對應於列25:30;什麼可能是錯誤的,它不打印循環中的每個系列? 謝謝!

編輯

還有一個循環,不工作,似乎其他原因:顯示

P <- array(0, dim=c(1032,7,5)) 
for(i in seq(1,25,by=6)) { 
    for (j in 1:5) { 
    P[,1:6,j] <- scores[,c(i:(i+5))] 
    P[,7,j] <- scores[,j+30] 
    } 
} 

錯誤mesage:Incorrect number of subscripts。也試過flush.console()沒有成功。

+0

也許你應該告訴我們「describe」和「scores」是做什麼的?你忘了一個括號,用'c(i:(i + 5))'。 – sgibb

+0

或者只是'我:(i + 5)'。我認爲@sgibb評論可以解決您的問題。 – juba

+0

究竟是什麼問題?你需要將你的分數存儲在新的矩陣或數據框中嗎?也許你應該定義數據框的尺寸,比如'df = data.frame(matrix(nrow = NX,ncol = NY))' – pacomet

回答

0

如果你想顯示在循環中的所有打印命令,你在打印命令後添加

flush.console() 

內循環:

for(i in seq(1,25,by=6)) { 
    print(describe(scores[,i:(i+5)])) 
    flush.console() 
} 

編輯

似乎像這個突擊隊

P[,1:6,j] <- scores[,c(i:(i+5))] 

將P轉換爲列表。這有幫助嗎?

+0

謝謝!我編輯帖子,因爲我仍然有問題 –

+0

什麼是 dim(分數) ? – holgrich

+0

這是一個數據框,1032x35 –

0

這個答案不會進入這個循環的問題,但可能會有所幫助,如果你只是想從describe輸出,這些具體的列(從Hmisc -package?):

一些示例數據:

scores <- matrix(rep(sample(1:10,10),25),nrow=10,ncol=25) 
dimnames(scores) <- list(1:10,LETTERS[1:25]) 

library(Hmisc) 
describe(scores[,seq(1,25,6)]) 

這是可行的,因爲for -loop已經構建到Hmisc:::describe函數中。

相關問題