vacio - tablas en r
¿Qué significa la función%>% en R? (4)
% ...% operadores
%>%
no tiene significado incorporado, pero el usuario (o un paquete) puede definir operadores de la forma %whatever%
any %whatever%
de la manera que quiera. Por ejemplo, esta función devolverá una cadena que consiste en su argumento izquierdo seguido de una coma y espacio y luego es el argumento correcto.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
La base de R proporciona %*%
(multiplicidad de matrices), %/%
(división entera), %in%
(¿es lhs un componente de rhs?), %o%
(producto externo) y %x%
(producto 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 de matriz %^%
. Para ver un ejemplo, vea Matrix power in R.
operadores El paquete de operadores R ha definido una gran cantidad 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 de %>%
el paquete de magrittr R lo ha definido como se discute en la viñeta magrittr. Ver http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr también ha definido una cantidad de otros operadores similares también. Consulte la sección Operadores de tuberías adicionales del enlace anterior, que analiza %T>%
, %<>%
y %$%
y http://cran.r-project.org/web/packages/magrittr/magrittr.pdf para obtener aún más información. detalles.
dplyr El paquete dplyr R utilizado para definir un operador %.%
que es similar; sin embargo, ha sido desaprobado y dplyr ahora recomienda que los usuarios usen %>%
que dplyr importa de magrittr y pone a disposición del usuario dplyr. Como David Arenburg ha mencionado en los comentarios, esta pregunta SO discute las diferencias entre él y el %>%
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 alternativa. Ver http://renkun.me/pipeR-tutorial/
El paquete pipeR también ha definido una cantidad de otros operadores similares también. Ver: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
wrapr El paquete R, wrapr, define un dot pipe %.>%
que es una versión explícita de %>%
ya que no hace una inserción implícita de argumentos, sino que solo sustituye los usos explícitos del punto en el lado derecho. Esto se puede considerar 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 de base inteligente para funcionar de una manera similar a las tuberías sin usar tubos. Se trata 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, utilizamos explícitamente dot en lugar de eliminar el argumento de punto y finalizamos cada componente de la interconexión con una asignación a la variable cuyo nombre es dot ( .
). Seguimos eso con un punto y coma.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Actualizar información agregada sobre el paquete expm y ejemplo simplificado en la parte superior.
Después de leer el http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html que%>% es un operador que canaliza funciones para mejorar la legibilidad y la productividad, ya que es más fácil seguir el flujo de múltiples funciones a través de estas tuberías que retroceder cuando se anidan funciones múltiples. .
La tubería %>%
pasa la salida del marco de datos que resulta de la función justo antes de la tubería para ingresarla como el primer argumento de la función inmediatamente después de la tubería.
%>%
es similar a la tubería en Unix que creó continuidad.
a = combined_data_set %>% group_by(Outlet_Identifier) %>% tally()
La salida de combine_data_set irá en group_by y el resultado de group_by irá a tall () y la salida final se asignará a a .
Esto le brinda una manera fácil y práctica de usar funciones en serie sin crear variables y almacenar valores intermedios.