関数で定義されている変数を取り出したいという相談を受けた。
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 するということはした。