r语言 - magrittr dot/period ( "." ) 运算符在管道的最开始时会做什么?



我不明白以下代码中的.在做什么,也不明白在哪里可以找到它的文档:

library(tidyverse)
ggplot(iris) + 
geom_point(
aes(x=Sepal.Length, y=Sepal.Width), 
data = . %>% filter(Species == 'setosa')
)

这似乎与"dplyr时期的角色是什么"中描述的用法大不相同"参考其中CCD_ 2不出现在最左边的位置。

这里的文件只说

一个以句点(.(作为LHS的管道将创建一个一元函数。这是用于定义聚合器函数。

但我一点也不清楚,我希望能得到更多信息。

这里的混乱实际上可能来自两个地方。

首先,是的,. %>% something()语法创建一个";一元";接受一个参数的函数。因此:

. %>% filter(Species == 'setosa')

相当于

function(.) filter(., Species == 'setosa')

这里的第二部分是ggplot2层实际上可以将一个函数作为它们的data参数。例如?geom_point:

要在此层中显示的数据。有三个选项:

将使用单个参数(绘图数据(调用函数。返回值必须是data.frame,并将用作图层数据

因此,传递给geom_point的函数将始终应用于默认绘图数据(即ggplot()中定义的数据(。

请注意,您的链接问题涉及.funs()中的使用,这与它在这里的使用没有直接关系。

最新更新