ggplot2参数如何工作?

时间:2012-12-12 20:31:35

标签: r ggplot2

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

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如何设置绑定,使这些优雅的调用语义“正常工作”,更具体地说,我将如何自己实现这种排序?我试图阅读源代码,但我很难理解它。

1 个答案:

答案 0 :(得分:6)

ggplot2的创建者Hadley在devtools wiki上有一个关于构建自己版本的subset函数的精彩条目 - 它也接受了数据参数。我学到了很多东西,并且我愿意打赌,文章中建立的机制与ggplot非常相似。

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