% ...% Operatoren
%>%hat keine eingebaute Bedeutung, aber der Benutzer (oder ein Paket) kann die Operatoren des Formulars %whatever%nach Belieben definieren . Diese Funktion gibt beispielsweise eine Zeichenfolge zurück, die aus dem linken Argument gefolgt von einem Komma und einem Leerzeichen und dem rechten Argument besteht.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
Die Basis von R liefert %*%(Matrixmulitiplikation), %/%(ganzzahlige Division), %in%(ist lhs ein Bestandteil des rhs?), %o%(Außenprodukt) und %x%(Kronecker-Produkt). Es ist nicht klar, ob es %%in diese Kategorie fällt oder nicht, aber es repräsentiert Modulo.
expm Das R-Paket expm definiert einen Matrixleistungsoperator %^%. Ein Beispiel finden Sie unter Matrixleistung in R. .
Operatoren Das Operator-R-Paket hat eine große Anzahl solcher Operatoren definiert, z. B. %!in%(für nicht %in%). Siehe http://cran.r-project.org/web/packages/operators/operators.pdf
Rohre
magrittr Im Fall des %>%magrittr R-Pakets wurde es wie in der magrittr-Vignette beschrieben definiert. Siehe http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr hat auch eine Reihe anderer solcher Operatoren definiert. Siehe das Zusatzrohr Operatoren Abschnitt des Standes der Verbindung , die diskutiert %T>%, %<>%und %$%und http://cran.r-project.org/web/packages/magrittr/magrittr.pdf für noch mehr Details.
dplyr Das Paket dplyr R, mit dem ein %.%ähnlicher Operator definiert wird. Es ist jedoch veraltet und dplyr empfiehlt nun Benutzern, das zu verwenden, %>%das dplyr aus magrittr importiert und dem dplyr-Benutzer zur Verfügung stellt. Wie David Arenburg in den Kommentaren erwähnt hat, diskutiert diese SO-Frage die Unterschiede zwischen ihr und den Magrittr %>%: Unterschiede zwischen%.% (Dplyr) und%>% (Magrittr)
pipeR Das R-Paket pipeR definiert einen %>>%Operator, der dem%>% von magrittr ähnlich ist und als Alternative dazu verwendet werden kann. Siehe http://renkun.me/pipeR-tutorial/
Das pipeR-Paket hat auch eine Reihe anderer solcher Operatoren definiert. Siehe: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic Das definierte postlogic-Paket %if%und die %unless%Operatoren.
wrapr Das R-Paket wrapr definiert eine Punktpipe, die eine %.>%explizite Version von ist %>%, da es keine implizite Einfügung von Argumenten durchführt, sondern nur die explizite Verwendung von Punkten auf der rechten Seite ersetzt. Dies kann als eine weitere Alternative zu betrachtet werden %>%. Siehe https://winvector.github.io/wrapr/articles/dot_pipe.html
Bizarro Pfeife . Dies ist nicht wirklich eine Pipe, sondern eine clevere Basissyntax, die ähnlich wie Pipes funktioniert, ohne tatsächlich Pipes zu verwenden. Es wird in http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/ besprochen. Die Idee ist, dass anstatt zu schreiben:
1:8 %>% sum %>% sqrt
## [1] 6
man schreibt folgendes. In diesem Fall verwenden wir explizit Punkt, anstatt das Punktargument zu entfernen, und beenden jede Komponente der Pipeline mit einer Zuweisung zu der Variablen, deren Name dot ( .) ist. Wir folgen dem mit einem Semikolon.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Update Hinzugefügte Informationen zum expm-Paket und vereinfachtes Beispiel oben. Postlogic-Paket hinzugefügt.
?'%>%'