重複の可能性:
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
Variable1 が見つかりません。
これがバグである理由をある程度理解しています。最初の行で、varName は、エントリが文字列 "Variable1" だけのベクトルになります。次に、NA 値を保持するために varName が再割り当てされます。そのため、Variable1 を印刷しようとすると、存在しません。
より一般的な問題は、割り当てと平等だと思います。最初の行では、varName を新しく作成した文字列と等しくしたいのですが、次の行では、varName をNA 値ベクトルに割り当てたいと考えています。
その区別を作成する最も簡単な方法は何ですか? 私はまた、これを行うためのまったく異なる、より良い方法にもオープンです。
編集:問題を誤解していたため、タイトルを変更しました。