我想创建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
}
答案 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]))