我需要创建循环,根据向量名称的向量为某些向量分配新值。总的来说,只需使用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
不会这样做,所以我不知道如何制作这样的循环。请提供解决方案或解决方法以避免此错误。或者我错过了一些明显的东西?