PHP では、$$x のようにすると、変数名を変数に代入して渡すことが可能です。同様のことができると便利なので、簡単に実現できる方法があったら教えてください。
どういうことをしたいのかわかりませんが、eval() という関数があります。
eval(parse(text="hoge <- 1"));
を実行すると、変数 hoge に 1 が代入されます。
これを使えば変数名を文字列として持っていれば、実行したいステートメントを文字列として構成し、実行することができます。
以下、例です。
names <- c("hoge", "fuga", "piyo"); values <- c(1, 2, 3); for(i in 1:3) { eval(parse(text=paste(names[i], "<-", values[i]))); } cat("hoge =", hoge, "\n"); cat("fuga =", fuga, "\n"); cat("piyo =", piyo, "\n");
結果:
hoge = 1
fuga = 2
piyo = 3
参考になりましたでしょうか?
コメント(1件)