来自for循环的多个矩阵输出

时间:2016-08-15 13:19:22

标签: r

像往常一样,我觉得我错过了一些非常简单的东西,但是我想要一个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]]&lt; - start.matrix:更多元素出错   供应比要替换

当我将result.matrix设置为5x5矩阵(空或者有东西)时,

返回。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分: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
}