1. ホーム
  2. r

[解決済み] Rの%>%の意味 [重複]について

2022-03-01 23:35:12

質問

私はこの例に倣って server.R , ファイルはこちら .

同様のフィルタリングを行う予定ですが、どのような %>% を実行します。

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

解決方法は?

infix演算子 %>% は基本 R には含まれませんが、実際には、パッケージ magrittr ( CRAN ) で多用されています。 dplyr ( CRAN ).

パイプのように動くので、マグリットの有名な絵にちなんで イメージの裏切り .

この関数が行うことは、演算子の左辺を右辺の第1引数に渡すことです。次の例では、データフレーム 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)) . 適用される関数が内側から外側へではなく、左から右へと読むことができるため、入れ子よりも連鎖を好む人もいます。