0
リスト内の各要素が実際に値のリストである、リスト内の要素を動的に作成しようとしています。問題を分離するために、i=3
がここで使用されますが、i
は実際には任意の整数または任意の文字/文字列になります。Rの "eval"を使って変数名をリストに割り当てる方法は?
3: var = rnorm(10, 100, 5)
4: new_list=list(eval(varname)=
しかし、今これをチェック:
i=3
varname = paste("x", as.character(i), sep="")
X=list()
var = rnorm(10, 100, 5)
new_list=list(eval(varname)=var)
上記のエラートレースバック与え
# but "eval(varname)" is a character
print(eval(varname))
[1] "X3"
# and this works:
new_list=list("x3"=var)
を...だから、なぜnew_list=list(eval(varname)=var)
という行は動作しないのですか?
で要素に名前を付けることが容易です。しかし、なぜ私はこの仕事をしようとしている方法ではありませんか? Rのニュアンスをもっと深く理解するのを助けてください。 – Hunle
あなたのコードがうまくいかないのは、 'eval(varname)'が評価されないためです。コール内の等号の左側にあります。それは簡単な名前を必要とする特別な位置です。 akrunの提案を使用してください。 –