我是R的新手,我想创建新的变量名并使用先前在for循环中创建的其他变量名。
我在线上找到了在循环中创建新变量的方法,但是我无法使用之前创建的其他变量进行操作。我已经尝试过粘贴函数并创建变量wihtin for循环。有人知道我如何处理循环中已经创建的变量吗?
这是可以手动完成的方式。
ACE1_dropc = umxModify(ACE1, update = "c_r1c1", name = "AE")
ACE2_dropc = umxModify(ACE2, update = "c_r1c1", name = "AE")
ACE3_dropc = umxModify(ACE3, update = "c_r1c1", name = "AE")
通过使用下一个循环,将创建变量,但是它们都在函数ACE1
中调用了相同的参数umxMofidy
(ACE1
是已经创建的S4类变量)。我想在每次迭代中使用不同的变量(ACE1
,ACE2
,ACE3
),但是当我尝试使用paste0("ACE",i)
时,它不起作用。
for(i in 1:3){
assign(paste("ACE", i, "_dropc", sep = ""), umxModify(ACE1, update = "c_r1c1", name = "AE") )
}
答案 0 :(得分:0)
尽管使用列表或其他数据结构通常是最佳做法,但您可以使用get()
通过其名称检索变量。例如
a1 = 1
z = get(paste0("a",1))
print(z)
1
在循环中,您将1
更改为i
-> get(paste0("ACE",i))
答案 1 :(得分:0)
我不确定umxModify是什么,但是我肯定会使用list
。在下面的示例中,我将随机数分配给列表l
,然后计算其绝对值。请注意,列表中的所有元素均已命名,并且可以由l[[paste0("iteration", i)]]
访问。
l <- list()
for(i in 1:3){
l[[paste0("iteration_", i)]] <- rnorm(1)
}
lapply(l, abs)