私はこの例に従います、server.R、 ファイルはこちら 。
私は似たようなフィルタをするつもりですが、%>%
が何をするかということに関して迷っています。
# 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 )によって頻繁に使用されます。 。
それはパイプのように機能するので、マグリットの有名な絵 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))
と同等です。適用された関数は裏返しではなく左から右に読むことができるので、入れ子にすることを連鎖することを好む人もいます。