2016-08-15 77 views
-2

像往常一樣,我覺得我失去了一些東西可怕的簡單,但我試圖讓一個for循環輸出了我許多的另一個結果for循環的版本。多矩陣輸出的循環

代碼:

#Create Species Vector 
    species.v <- letters[1:5] 

    #Matrix creation (Random) 
    start.matrix <- matrix(sample(species.v,25,replace=TRUE), 
         nrow=5, 
         ncol=5) 

    result.matrix <- vector("list",25) 

    for (i in 1:10) { 
    for (i in 1:50) { 
     in.dex <- sample(length(start.matrix),1) 
     start.matrix[in.dex] <- as.character(sample(start.matrix,1)) 
    } 

    result.matrix[[i]] <- start.matrix 
    } 

雖然指數/樣品/更換回路是我在做什麼,它具有相同的效果極其簡化版本。然後我需要多次重複這個循環(在這個例子中是10),並保留每個輸出以供以後分析/比較。

我寧願不做通過編寫一個新的文件(例如CSV),我會做反正我的R中的分析,但我似乎無法得到實際輸出到多個文件的工作。

在上面的例子中,我試圖創造一個「result.matrix」向量作爲一個列表,但如果輸出作爲基質這很好容易 - 我老是感到result.matrix

錯誤[[I]] < - start.matrix:多個元件供給 比有取代時,我有result.matrix設置爲5x5矩陣(或是空的或是用東西在)

返回。

任何幫助,將不勝感激

+1

爲什麼都是你的循環被收錄'i'? –

+0

第二個循環應該有不同的索引,比如j。 – mkt

+0

而你的名單的長度不符合你的任何一個指數。 – mkt

回答

1

直接回答你的問題,根據您的問題的描述,被固定在兩個地方的代碼:

#Create Species Vector 
species.v <- letters[1:5] 

#Matrix creation (Random) 
start.matrix <- matrix(sample(species.v,25,replace=TRUE), 
         nrow=5, 
         ncol=5) 

result.matrix <- vector("list",10) # Changed here 

for (i in 1:10) { 
    for (j in 1:50) {     # Changed here 
     in.dex <- sample(length(start.matrix),1) 
     start.matrix[in.dex] <- as.character(sample(start.matrix,1)) 
    }  
    result.matrix[[i]] <- start.matrix 
}