%...% les opérateurs
%>%
n'a pas de signification intégrée mais l'utilisateur (ou un package) est libre de définir les opérateurs du formulaire %whatever%
comme il le souhaite. Par exemple, cette fonction retournera une chaîne composée de son argument gauche suivi d'une virgule et d'un espace, puis de son argument droit.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
La base de R fournit %*%
(multiplication matricielle), %/%
(division entière), %in%
(lhs est-il un composant des rhs?), %o%
(Produit externe) et %x%
(produit de kronecker). Il n'est pas clair si%%
relève ou non de cette catégorie, mais cela représente modulo.
expm Le package R, expm, définit un opérateur de puissance matriciel %^%
. Pour voir un exemple matrice de puissance en R .
opérateurs Le package des opérateurs R a défini un grand nombre de tels opérateurs tels que %!in%
(pour non %in%
). Voir http://cran.r-project.org/web/packages/operators/operators.pdf
Tuyaux
magrittr Dans le cas du %>%
package magrittr R l'a défini comme décrit dans la vignette magrittr. Voir http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr a également défini un certain nombre d'autres opérateurs de ce type. Voir la section Opérateurs de tuyaux supplémentaires du lien précédent qui traite %T>%
, %<>%
et %$%
et http://cran.r-project.org/web/packages/magrittr/magrittr.pdf pour encore plus de détails.
dplyr Le package dplyr R utilisé pour définir un %.%
opérateur similaire; cependant, il est obsolète et dplyr recommande désormais aux utilisateurs d'utiliser %>%
quel dplyr importe depuis magrittr et met à la disposition de l'utilisateur de dplyr. Comme David Arenburg l'a mentionné dans les commentaires, cette question SO traite des différences entre elle et celle de magrittr %>%
: Différences entre%.% (Dplyr) et%>% (magrittr)
pipeR Le package R, pipeR, définit un %>>%
opérateur qui est similaire à%>% de magrittr et peut être utilisé comme alternative. Voir http://renkun.me/pipeR-tutorial/
Le package pipeR a également défini un certain nombre d'autres opérateurs de ce type. Voir: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic Le package postlogic défini %if%
et les %unless%
opérateurs.
wrapr Le package R, wrapr, définit un tube de point %.>%
qui est une version explicite de %>%
en ce qu'il n'effectue pas d'insertion implicite d'arguments mais ne remplace que les utilisations explicites du point sur le côté droit. Cela peut être considéré comme une autre alternative à %>%
. Voir https://winvector.github.io/wrapr/articles/dot_pipe.html
Pipe Bizarro . Ce n'est pas vraiment un tube, mais plutôt une syntaxe de base intelligente pour fonctionner de manière similaire aux tubes sans utiliser réellement de tubes. Il est discuté dans http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/ L'idée est qu'au lieu d'écrire:
1:8 %>% sum %>% sqrt
## [1] 6
on écrit ce qui suit. Dans ce cas, nous utilisons explicitement dot plutôt que d'éliminer l'argument point et terminons chaque composant du pipeline par une affectation à la variable dont le nom est dot ( .
). Nous suivons cela avec un point-virgule.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Mise à jour Ajout d'informations sur le package expm et exemple simplifié en haut. Ajout du package postlogic.
?'%>%'