如何将索引传递给R中for循环中对象的名称?

时间:2017-02-01 03:08:08

标签: r

我试图找出如何让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作为动态名称而不仅仅是矩阵的常规名称?谢谢!

1 个答案:

答案 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(或其他对象)使用起来更方便