我试图找出如何让R在for循环中接受我的索引。举个简单的例子,我希望每个新矩阵的名称索引都不同于以前的名称:
for(i in 1:5){
new.matrix.i <- matrix(NA, nrow = i, ncol = i)
}
从这个循环中,我知道它显然不起作用,但我想知道如何创建5个新矩阵,第一个是NA的逐个矩阵,第二个是2-by-by-one矩阵。 - NA的两个矩阵,一直到具有所有NA的五乘五矩阵。
换句话说,我想知道如何让R对待
new.matrix.i
使用i作为动态名称而不仅仅是矩阵的常规名称?谢谢!
答案 0 :(得分:1)
我们可以使用lapply
创建list
matrices
lst <- lapply(1:5, function(i) matrix(NA, nrow = i, ncol = i))
或者我们继续for
循环,将new.matrix.i
初始化为list
new.matrix.i <- vector("list", 5)
for(i in 1:5){
new.matrix.i[[i]] <- matrix(NA, nrow = i, ncol = i)
}
注意:最好不要在全局环境中创建多个对象。 list
matrix
(或其他对象)使用起来更方便