かなりの数のパッケージで、関数が呼び出されるコンテキストでは有効ではないシンボル名を渡すことができることに気付きました。これがどのように機能し、自分のコードでどのように使用できるのだろうか?
ggplot2 の例を次に示します。
a <- data.frame(x=1:10,y=1:10)
library(ggplot2)
qplot(data=a,x=x,y=y)
x
私の名前空間には存在しy
ませんが、ggplot はそれらがデータ フレームの一部であることを理解し、それらの評価を有効なコンテキストに延期します。私は同じことをやってみました:
b <- function(data,name) { within(data,print(name)) }
b(a,x)
ただし、これは惨めに失敗します。
Error in print(name) : object 'x' not found
私は何を間違っていますか?これはどのように作動しますか?
注:これは、変数名をrの関数に渡すの複製ではありません