可能重复:
R:如何字符串转换为变量的名字吗?
在R,我正在写一个for循环,将反复创建变量名,然后分配值给每个变量。
下面是一个简化版本。 其目的是基于迭代变量i的值来创建变量的名称,然后填写与NA值的新变量。
(我只迭代1:1以下,因为出现问题是不相关的循环本身,而是正在创建变量并分配的方式。)
for (i in 1:1) {
#name variable i "Variablei"
varName = paste("Variable", as.character(i), sep="")
#fill variable with NA values
varName = rep(NA, 12)
print(varName)
print(Variable1)
}
现在,varName的打印出的
[1] NA NA NA NA NA NA NA NA NA NA NA NA
和变量1是找不到的。
我的理解在一定程度上这是为什么马车。 在第一行,变为varName中其唯一的条目是字符串“变量1”的向量。 然后varName中被重新分配给持有NA值。 所以,当我尝试打印变量1,它不存在。
我认为,更普遍的问题是分配与平等。 在第一行中,我想的varName为等于在新制成的字符串,但在下一行,我想的varName 要分配给 NA值向量。
什么是创建区别的最简单的方法? 我也开到完全不同的,更好的方式去了解这一点。
编辑:更改标题,因为我已经曲解了问题。