Rで、変数名を変数にいれて処理することができるのでしょうか?

PHP では、$$x のようにすると、変数名を変数に代入して渡すことが可能です。同様のことができると便利なので、簡単に実現できる方法があったら教えてください。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2011/09/23 16:10:03

回答1件)

id:akagi_paon No.1

回答回数143ベストアンサー獲得回数13

どういうことをしたいのかわかりませんが、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

参考になりましたでしょうか?

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/17.html

  • id:isogaya
    ありがとうございます、できないことはないけどちょっと面倒(タイプ数が多い)のですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません