Назначение переменной в цикле for [duplicate]
Возможный дубликат:
R: Как преобразовать строку в имя переменной?
В R яЯ пишу цикл for, который будет итеративно создавать имена переменных, а затем присваивать значения каждой переменной.
Вот упрощенная версия. Намерение состоит в том, чтобы создать переменнуюs имя на основе значения итерации переменной i, затем заполните новую переменную значениями NA.
(Я'м итерируя только 1: 1 ниже, так как проблема возникает неt относится к самому циклу, а скорее к способу создания и назначения переменной.)
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.
Какой самый простой способ создать это различие? Я'Я также открыт для совершенно других, лучших способов сделать это.
РЕДАКТИРОВАТЬ: изменил название, потому что я неправильно охарактеризовал проблему.