2016-08-15 98 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 
}