我正在关注此示例, server.R ,file is here。
我打算做一个类似的过滤器,但我对%>%
做了什么感到迷茫。
# Apply filters
m <- all_movies %>%
filter(
Reviews >= reviews,
Oscars >= oscars,
Year >= minyear,
Year <= maxyear,
BoxOffice >= minboxoffice,
BoxOffice <= maxboxoffice
) %>%
arrange(Oscars)
答案 0 :(得分:198)
中缀运算符%>%
不是基础R的一部分,但实际上是由包magrittr
(CRAN)定义的,并且dplyr
({1}}大量使用{3}})。
它像管道一样工作,因此引用了马格利特的着名画作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)
。
通常,%>%
被多次调用到&#34;链&#34;功能在一起,完成与嵌套相同的结果。例如,在下面的链中,iris
会传递给head()
,然后将结果传递给summary()
。
iris %>% head() %>% summary()
因此iris %>% head() %>% summary()
相当于summary(head(iris))
。有些人喜欢链接到嵌套,因为应用的函数可以从左到右而不是从里到外读取。