R LanguageOperadores de tuberías (%>% y otros)


Introducción

Los operadores de tuberías, disponibles en magrittr , dplyr y otros R, procesan un objeto de datos utilizando una secuencia de operaciones al pasar el resultado de un paso como entrada para el siguiente paso utilizando operadores de infijo en lugar del método R más típico de anidado función de llamadas.

Tenga en cuenta que el objetivo de los operadores de tuberías es aumentar la legibilidad humana del código escrito. Vea la sección de Comentarios para consideraciones de rendimiento.

Sintaxis

  • Sintaxis de rhs(lhs) lhs%>% rhs # para rhs(lhs)

  • lhs%>% rhs (a = 1) # sintaxis de tubería para rhs(lhs, a = 1)

  • lhs%>% rhs (a = 1, b =.) # sintaxis de tubería para rhs(a = 1, b = lhs)

  • lhs% <>% rhs # sintaxis de tuberías para lhs <- rhs(lhs)

  • lhs% $% rhs (a) # sintaxis de tubería para with(lhs, rhs(lhs$a))

  • lhs% T>% rhs # sintaxis de tubería para { rhs(lhs); lhs }

Parámetros

lhs rs
Un valor o el marcador de posición magrittr. Una llamada a la función utilizando la semántica magrittr.

Observaciones

Paquetes que utilizan %>%

El operador de tubería está definido en el paquete magrittr , pero ganó gran visibilidad y popularidad con el paquete dplyr (que importa la definición de magrittr ). Ahora es parte de tidyverse , que es una colección de paquetes que "funcionan en armonía porque comparten representaciones de datos comunes y diseño de API" .

El paquete magrittr también proporciona varias variaciones del operador de tubería para aquellos que desean una mayor flexibilidad en la tubería, como la tubería de asignación compuesta %<>% , la tubería de exposición %$% y el operador en %T>% . También proporciona un conjunto de funciones de alias para reemplazar funciones comunes que tienen una sintaxis especial ( + , [ , [[ , etc.) para que puedan usarse fácilmente dentro de una cadena de tuberías.

Encontrar documentación

Al igual que con cualquier operador de infijo (como + , * , ^ , & , %in% ), puede encontrar la documentación oficial si la pone entre comillas ?'%>%' O help('%>%') ( asumiendo que ha cargado un paquete que adjunta pkg:magrittr ).

Teclas de acceso rápido

Hay una tecla de acceso rápido especial en RStudio para el operador de tuberías: Ctrl+Shift+M ( Windows y Linux ), Cmd+Shift+M ( Mac ).

Consideraciones de rendimiento

Si bien el operador de tuberías es útil, tenga en cuenta que existe un impacto negativo en el rendimiento debido principalmente a la sobrecarga de su uso. Considere las siguientes dos cosas cuidadosamente al usar el operador de tubería:

  • Rendimiento de la máquina (bucles)
  • Evaluación ( object %>% rm() no elimina el object )

Operadores de tuberías (%>% y otros) Ejemplos relacionados