在R中动态分配向量

时间:2016-05-16 03:57:27

标签: r assign

我有多个向量 D i ,其中 i = 1,2,...,40。现在在对于 -loop,我想对这些做一些操作。以下伪代码总结了我的目标。

for i in 1:40
    D = Di  # How to do this?
    # ... do some operations on D #

编辑:请注意,每个 Di 都是一个单独的向量。

3 个答案:

答案 0 :(得分:3)

将它们全部放在列表中,可以使用索引表示法访问每个列表对象(向量)。

MyVectors = list(D1 = c(1:10),
                 D2 = c(11:20))

> MyVectors[[1]]
 [1]  1  2  3  4  5  6  7  8  9 10
> MyVectors[[2]]
 [1] 11 12 13 14 15 16 17 18 19 20

因此您可以这样访问它们:

for(i in 1:2){
        MyVectors[[i]] =  MyVectors[[i]] + 2
}

答案 1 :(得分:2)

有趣的是,I just answered a similar question about 45 minutes ago。我坚持我在答案中描述的关于这个问题的哲学。但是因为你有40个松散的物体,而不是只有2个,所以“分离”方法确实没有意义。您应该使用“系统性”方法,如下所示:

{{1}}

答案 2 :(得分:0)

有趣的是,我在一小时前回答了另一个问题。以同样的方式,我们可以将vectors放在list中,然后在每个列表元素中执行操作

 MyVectors = list(D1 = c(1:10),
             D2 = c(11:20))
 lapply(MyVectors, function(x) x +2)