library(magrittr)
またはlibrary(dplyr)
最初に実行して?'%>%'
から、私のリンクはより多くの情報を提供します
library(magrittr)
またはlibrary(dplyr)
最初に実行して?'%>%'
から、私のリンクはより多くの情報を提供します
回答:
%>%
組み込みの意味はありませんが、ユーザー(またはパッケージ)は自由にフォームの演算子を自由に定義できます%whatever%
。たとえば、この関数は、左側の引数とそれに続くコンマとスペースで構成される文字列を返し、次に右側の引数を返します。
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
Rのベースは、%*%
(行列乗算)、 %/%
(整数除算)、%in%
(lhsはrhsのコンポーネントですか?)、%o%
(外積)、%x%
(クロネッカー積)を提供します。%%
このカテゴリに該当するかどうかは不明ですが、モジュロを表します。
expm Rパッケージexpmは、行列べき乗演算子を定義し%^%
ます。例については、Rの行列のべき乗を参照してください。
演算子演算子Rパッケージは、%!in%
(for not %in%
)などの演算子を多数定義しています。http://cran.r-project.org/web/packages/operators/operators.pdfを参照してください
magrittr magrittrの場合、%>%
Rパッケージはmagrittrビネットで説明されているようにそれを定義しています。http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.htmlを参照してください
magittrは、他にもこのような演算子をいくつか定義しています。議論以前のリンクの追加のパイプ演算子のセクションを参照してください%T>%
、%<>%
と%$%
してhttp://cran.r-project.org/web/packages/magrittr/magrittr.pdfも、詳細については。
dplyr%.%
同様の演算子を定義するために使用されるdplyr Rパッケージ。ただし、非推奨になり、dplyrでは、%>%
magrittrからインポートしたdplyrを使用して、dplyrユーザーが利用できるようにすることをユーザーに推奨しています。David Arenburgがコメントで述べたように、このSOの質問はそれとmagrittrの違いについて説明しています%>%
:%。%(dplyr)と%>%(magrittr)の違い
pipeR RパッケージpipeRは、%>>%
magrittrの%>%に類似した演算子を定義し、その代わりに使用できます。http://renkun.me/pipeR-tutorial/を参照してください
pipeRパッケージは、他にもこのような演算子をいくつか定義しています。参照:http : //cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic定義されたpostlogicパッケージ%if%
と%unless%
演算子。
wrapr Rパッケージwrapr %.>%
は、明示的なバージョンのドットパイプを定義します。%>%
これは、引数の暗黙的な挿入を行わず、右側のドットの明示的な使用を置き換えるだけです。これは、の別の代替案と考えることができます%>%
。https://winvector.github.io/wrapr/articles/dot_pipe.htmlを参照してください
ビザロパイプ。これは実際にはパイプではなく、実際にパイプを使用せずにパイプと同様の方法で機能する巧妙な基本構文です。それはhttp://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/で議論されています アイデアは書く代わりにそれです:
1:8 %>% sum %>% sqrt
## [1] 6
次のように書きます。この場合、ドット引数を省略せずに明示的にドットを使用して、名前がdot(.
)である変数への割り当てでパイプラインの各コンポーネントを終了します。その後にセミコロンを付けます。
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
更新 expmパッケージに関する情報を追加し、上部に簡略化した例を追加。postlogicパッケージを追加しました。
?"%<>%"
など
G.Grothendieckによって提供されたリンクを読んだ後の私の理解は、%>%が関数をパイプする演算子であるということです。これにより、複数の関数がネストされている場合、逆方向に進むよりも、これらのパイプを介して複数の関数のフローをたどることが容易になるため、読みやすさと生産性が向上します。
Rパッケージdplyrとsfは、Rパッケージmagrittrから演算子%>%をインポートします。
次のコマンドを使用すると、ヘルプを利用できます。
?'%>%'
もちろん、パッケージは、例えば、
library(sf)
magrittr前方パイプ演算子のドキュメントは、良い例を示しています:関数が1つの引数のみを必要とする場合、x%>%fはf(x)と同等です
?'%>%'