Atribuição variável dentro de um loop for [duplicado]
Duplicata Possível:
R: como converter string para o nome da variável?
Em R, estou escrevendo um loop for que criará iterativamente nomes de variáveis e, em seguida, atribuirá valores a cada variável.
Aqui está uma versão simplificada. A intenção é criar o nome da variável com base no valor da variável de iteração i e, em seguida, preencher a nova variável com valores de NA.
(Eu estou apenas iterando 1: 1 abaixo desde que o problema ocorre não está relacionado ao loop em si, mas sim à maneira como a variável está sendo criada e atribuída.)
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)
}
Agora, varName imprime como
[1] NA NA NA NA NA NA NA NA NA NA NA NA
e Variable1 não foi encontrado.
Eu entendo em algum nível porque isso é buggy. Na primeira linha, varName se torna um vetor cuja única entrada é a string "Variable1". Em seguida, varName é reatribuído para manter os valores de NA. Então, quando tento imprimir a Variable1, ela não existe.
Eu acho que a questão mais geral é atribuição versus igualdade. Na primeira linha, quero varName paraser igual a a string recém-feita, mas na próxima linha, eu quero varName paraser atribuído a o vetor de valor de NA.
Qual é a maneira mais simples de criar essa distinção? Eu também estou aberto a maneiras completamente diferentes e melhores de fazer isso.
EDIT: título alterado porque eu tinha descaracterizado o problema.