<分区>
Possible Duplicate:
R: How to convert string to variable name?
在 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
并且未找到 Variable1。
我在某种程度上理解为什么这是错误的。在第一行中,varName 成为一个向量,其唯一条目是字符串“Variable1”。然后 varName 被重新分配以保存 NA 值。所以当我尝试打印 Variable1 时,它不存在。
我认为更普遍的问题是赋值与相等。在第一行中,我希望 varName 等于 新创建的字符串,但在下一行中,我希望将 varName 分配给 NA 值向量。
创造这种区别的最简单方法是什么?我也愿意接受完全不同的、更好的方法来解决这个问题。
编辑:更改标题是因为我对问题的描述有误。