R で変数をなんやかんやしたい

関数で定義されている変数を取り出したいという相談を受けた。
deparse でできるようだ。

deparse(plot)
[1] "function (x, y, ...) " "UseMethod(\"plot\")"  

 
逆に、テキストになっている変数を関数に使いたいとも聞かれた。
eval とparse の合わせ技でできる。

eval(parse(text="1+2"))
[1] 3

オブジェクトを一括して作成することができる(リストなどで持てよと思うけど)

# hoge が定義されていない状況で
eval(parse(text=sprintf("hoge%d <- %f", 0:2, c(2, 3.4, -0.2))))
hoge0
hoge1
hoge2

hoge0, hoge1, hoge2 ができている。
昔使ったのは、プロット上に数式を出したいが、substitute を使うのが面倒なので文字列で大量にtex を作っておいて、eval するということはした。