mim*_*mic 11 r operators ggplot2
我试图得到这个例子:
ggplot(mpg,aes(displ,hwy))+ geom_point()
有人能解释一下这两个函数之间发生了什么吗?
ggplot2是否超载"加"运算符?总结这些2的结果是什么,它分配给了什么?它是特定于R的功能,还是特定于ggplot2的?这是管道吗?
@Richard Scriven 在注释中引用的函数定义在 中定义plot-construction.r,这可能会更清楚。您需要查看源代码以确切了解这两个(未导出的)函数的作用(调用的 LHS 是 atheme还是ggplot对象),但名称应该给您一个很好的主意。返回值e1通过 "adding" 修改e2。
"+.gg" <- function(e1, e2) {
# Get the name of what was passed in as e2, and pass along so that it
# can be displayed in error messages
e2name <- deparse(substitute(e2))
if (is.theme(e1)) add_theme(e1, e2, e2name)
else if (is.ggplot(e1)) add_ggplot(e1, e2, e2name)
}
Run Code Online (Sandbox Code Playgroud)
所以,是的,+对于继承类的对象gg(所有ggplot2对象)来说是重载的。
我认为“管道”(@alistaire 的评论)是一个误导性的比喻;这非常符合标准 Ops 组通用的风格。
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |