可能重复:
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 变成了一个向量,其唯一的条目是字符串“Variable1”。然后 varName 被重新分配以保存 NA 值。因此,当我尝试打印 Variable1 时,它不存在。
我认为更普遍的问题是分配与平等。在第一行中,我希望 varName等于新创建的字符串,但在下一行中,我希望将 varName 分配给NA 值向量。
创造这种区别的最简单方法是什么?我也愿意接受完全不同的、更好的方法来解决这个问题。
编辑:更改标题是因为我错误地描述了这个问题。