% ...% operadores
%>%
no tiene un significado incorporado, pero el usuario (o un paquete) es libre de definir los operadores del formulario de la forma que %whatever%
desee. Por ejemplo, esta función devolverá una cadena que consta de su argumento izquierdo seguido de una coma y un espacio y luego su argumento derecho.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
La base de R proporciona %*%
(multiplicación de matriz), %/%
(división de números enteros), %in%
(¿es lhs un componente del rhs?), %o%
(Producto externo) y %x%
(producto de kronecker). No está claro si %%
cae en esta categoría o no, pero representa módulo.
expm El paquete R, expm, define un operador de potencia matricial %^%
. Véase un ejemplo en el poder de la matriz en I .
operadores El paquete R de operadores ha definido un gran número de operadores tales como %!in%
(for not %in%
). Ver http://cran.r-project.org/web/packages/operators/operators.pdf
Tubería
magrittr En el caso del %>%
paquete magrittr R lo ha definido como se discutió en la viñeta magrittr. Ver http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr también ha definido una serie de otros operadores similares. Ver la sección adicional Operadores Pipe del enlace anterior, que analiza %T>%
, %<>%
y %$%
y http://cran.r-project.org/web/packages/magrittr/magrittr.pdf incluso para más detalles.
dplyr El paquete dplyr R utilizado para definir un %.%
operador que es similar; sin embargo, ha quedado obsoleto y ahora dplyr recomienda que los usuarios utilicen el %>%
que dplyr importa de magrittr y lo pone a disposición del usuario de dplyr. Como ha mencionado David Arenburg en los comentarios, esta pregunta SO discute las diferencias entre ella y la de magrittr %>%
: Diferencias entre%.% (Dplyr) y%>% (magrittr)
pipeR El paquete R, pipeR, define un %>>%
operador que es similar al%>% de magrittr y se puede usar como una alternativa. Ver http://renkun.me/pipeR-tutorial/
El paquete pipeR también ha definido otros operadores similares. Ver: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic El paquete postlogic definido %if%
y %unless%
operadores.
wrapr El paquete R, wrapr, define un dot pipe %.>%
que es una versión explícita de %>%
en el sentido de que no hace una inserción implícita de argumentos, sino que solo sustituye los usos explícitos de dot en el lado derecho. Esto puede considerarse como otra alternativa a %>%
. Ver https://winvector.github.io/wrapr/articles/dot_pipe.html
Pipa bizarro . Esto no es realmente una tubería, sino más bien una sintaxis básica inteligente para trabajar de una manera similar a las tuberías sin usar realmente las tuberías. Se discute en http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/ La idea es que en lugar de escribir:
1:8 %>% sum %>% sqrt
## [1] 6
uno escribe lo siguiente. En este caso usamos explícitamente punto en lugar de elidir el argumento de punto y terminamos cada componente de la canalización con una asignación a la variable cuyo nombre es punto ( .
). Seguimos eso con un punto y coma.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Actualización Información agregada sobre el paquete expm y ejemplo simplificado en la parte superior. Paquete postlogic agregado.
?'%>%'