r - R中%>%是什么意思

标签 r magrittr

我正在遵循这个示例,server.Rfile is here .

我计划做一个类似的过滤器,但不知道什么%>%确实如此。

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

最佳答案

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

它的工作原理就像一根 pipe ,因此引用了马格利特的名画The Treachery of Images .

该函数的作用是将运算符左侧传递给运算符右侧的第一个参数。在以下示例中,数据框 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)) 。有些人更喜欢链接而不是嵌套,因为所应用的函数可以从左到右读取,而不是从内向外读取。

关于r - R中%>%是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24536154/

相关文章:

r - 在管道R工作流程中为大多数data.frame变量名称添加前缀或后缀

r - 通过 magrittr 传递命名参数

r - 在管链中捕获对象的 "safe state"

r - 如何使用 dplyr 填写日期?

r - 在应用程序内更新传单 map 的 Shiny (R) 问题

r 如何使用这些约束重新调整一系列数字?

r - 如何在 magrittr 中使用数值公式中的 '.'

R:使用管道将单个参数传递到函数中的多个位置

当 setMethod(或 setGeneric)中的参数太多时,R 会挂起

在 Hmisc 生成的表上旋转列标题