使用for循环创建多个矩阵

时间:2015-07-06 14:41:40

标签: r loops for-loop matrix

我想创建ncol(y)个矩阵,从y矩阵中取每列,并复制rep次。我不是在做for循环。重申一下,下面我想得到三个单独的矩阵,第一个将有1到100的值重复200次(它们来自y的第一列),第二个将有向量101-200重复200次(第2列) y)和第三个将具有重复200次的值201-300(y的第3列)。输出名称最好是matrix1,matrix2或list。

y <- matrix(1:300,100,3)
rep = 200

for (i in 1:ncol(y)) {
        newmatrix <- replicate(rep,y[,i])
        valuematrix[[i]] <- newmatrix
}

1 个答案:

答案 0 :(得分:2)

你错过了valuematrix的初始化。你可以通过

来做到这一点
valuematrix <- list()

就在for循环之前。

您也可以考虑使用lapply来解决此问题。它会自动将矩阵存储在列表中。

y <- matrix(1:300, 100, 3)
rep = 200

matList <- lapply(1:ncol(y), function(i) replicate(rep, y[,i]))