使用`get`函数在循环中追加新值

时间:2018-03-27 16:34:20

标签: r loops

我需要创建循环,根据向量名称的向量为某些向量分配新值。总的来说,只需使用assign即可轻松完成。这是一个例子:

set.seed(11)
my_future_vectors=c("vec1","vec2","vec3")
for (i in 1:length(my_future_vectors)){assign(my_future_vectors[i],runif(3,0:1))}

assign的问题在于,每当我需要向这些向量添加新值时,它都会覆盖它们。如果我想添加1,我会这样做:

assign(my_future_vectors[1],1)

比:

> vec1
[1] 1

这是可以理解的,但对我有用的是vec1[length(vec1)+1]=1,它提供输出:

> vec1
[1] 0.2772497942 1.0000000000 0.0005183129 1.0000000000

每当我尝试使用函数get来解决某些向量时出现问题:

get(my_future_vectors[1])[length(my_future_vectors[1])+1]=1

我收到错误:

Error in get(my_future_vectors[1])[length(my_future_vectors[1])] = 1 : 
  could not find function "get<-

所以我理解get不会这样做,所以我不知道如何制作这样的循环。请提供解决方案或解决方法以避免此错误。或者我错过了一些明显的东西?

0 个答案:

没有答案