3

R withggplot2では、これらの 2 つの行は同じことをしているように見えます。

qplot(data=diamonds, carat, price)
qplot(data=diamonds, get("carat"), get("price"))

しかし、私はそれらがどのように機能するのか理解していません...

Rcaratは、最初のケースで何get("carat")を参照し、2 番目のケースで何を参照しているかをどのように理解しますか? アクセスしようとすると、caratまたはget("carat")自分で取得します(当然のことながら)

> carat
Error: object 'carat' not found
> get("carat")
Error in get("carat") : object 'carat' not found

ggplot2内部では、これらのエレガントな呼び出しセマンティクスが「うまく機能する」ようにバインディングをどのように設定しますか? ソースを読んでみましたが、よくわかりません。

4

1 に答える 1

6

ggplot2 の作成者である Hadley は、devtools wiki に、subset関数の独自のバージョンを作成することについての素晴らしいエントリを持っています。これは、データ引数も取ります。私はそれを読んで多くのことを学びました.記事で構築されたメカニズムは、実際のものと非常に似ていると確信してggplotいます.

https://github.com/hadley/devtools/wiki/Evaluation

于 2012-12-12T21:31:01.407 に答える