% ...% 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.
?'%>%'