% >% 在 R 中的意思是什么

我遵循这个例子,服务器 R文件在这里

我计划做一个类似的过滤器,但迷失了什么 %>%做。

 # Apply filters
m <- all_movies %>%
filter(
Reviews >= reviews,
Oscars >= oscars,
Year >= minyear,
Year <= maxyear,
BoxOffice >= minboxoffice,
BoxOffice <= maxboxoffice
) %>%
arrange(Oscars)
429977 次浏览

中缀操作符 %>%不是基本 R 的一部分,但实际上是由包 magrittr(CRAN)定义的,并被 dplyr(CRAN)大量使用。

它的工作原理像一根管子,因此引用了马格利特的著名油画 形象的叛逆

函数的作用是将操作符的左边传递给操作符右边的第一个参数。在下面的示例中,数据帧 iris被传递给 head():

library(magrittr)
iris %>% head()
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

因此,iris %>% head()等价于 head(iris)

通常,%>%被多次调用以“链接”函数,这实现了与嵌套相同的结果。例如,在下面的链中,iris被传递给 head(),然后结果被传递给 summary()

iris %>% head() %>% summary()

因此 iris %>% head() %>% summary()等价于 summary(head(iris))。有些人喜欢链接而不喜欢嵌套,因为所应用的函数可以从左到右读取,而不是从内向外读取。