3

在 R with 中ggplot2,这两行似乎做同样的事情:

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

但我不明白它们是如何工作的......

R如何理解carat第一种情况get("carat")指的是什么,第二种情况指的是什么?如果我只是尝试访问caratget("carat")自行访问,我会得到(不出所料)

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

在幕后,如何ggplot2设置绑定以使这些优雅的调用语义“正常工作”,更具体地说,我将如何自己实现这种事情?我试图阅读源代码,但无法理解它。

4

1 回答 1

6

Hadley 是 ggplot2 的创建者,在 devtools wiki 上有一篇关于构建您自己的subset函数版本的精彩条目——它也需要一个数据参数。阅读它我学到了很多东西,我愿意打赌文章中建立的机制与实际情况非常相似ggplot

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

于 2012-12-12T21:31:01.407 回答