R>%表示%>%

ben*_*ays 107 r magrittr

我按照这个例子,server.R,文件在这里.

我打算做一个类似的过滤器,但我失去了什么%>%.

 # Apply filters
    m <- all_movies %>%
      filter(
        Reviews >= reviews,
        Oscars >= oscars,
        Year >= minyear,
        Year <= maxyear,
        BoxOffice >= minboxoffice,
        BoxOffice <= maxboxoffice
      ) %>%
      arrange(Oscars)
Run Code Online (Sandbox Code Playgroud)

And*_*rie 224

管道符%>%不是基础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
Run Code Online (Sandbox Code Playgroud)

因此,iris %>% head()相当于head(iris).

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

iris %>% head() %>% summary()
Run Code Online (Sandbox Code Playgroud)

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

  • 我想你可以,但这可能会干扰 | 的使用 “或”运算符,有时是需要的。 (3认同)