Performance

Each operator defined in this package specializes in its work and is made as simple as possible. Therefore the overhead is extremely low and their performance is very close to traditional approach. This allow you to build long and nested pipelines and perform intensive computations without worrying much about the performance cost.

library(magrittr)
# 
# Attaching package: 'magrittr'
# 
# The following object is masked from 'package:dplyr':
# 
#     %>%
# 
# The following objects are masked from 'package:testthat':
# 
#     equals, is_less_than, not
# magrittr::`%>%`
system.time(lapply(1:50000, function(i) 
  rnorm(100) %>% c(rnorm(100))))
#    user  system elapsed 
#    9.00    0.01    9.27
library(pipeR)   
# pipeR::`%>>%`
system.time(lapply(1:50000, function(i) 
  rnorm(100) %>>% c(rnorm(100))))
#    user  system elapsed 
#    1.81    0.00    1.81

The more levels the operator is nested in iterations, the larger the performance difference will be.

# magrittr::`%>%`
system.time(lapply(1:1000, function(i) 
  rnorm(100) %>% c(rnorm(100),
    sapply(1:100, function(j) 
      rnorm(50) %>% c(rnorm(50))))))
#    user  system elapsed 
#   15.08    0.00   15.27
# pipeR::`%>>%`
system.time(lapply(1:1000, function(i) 
  rnorm(100) %>>% c(rnorm(100),
    sapply(1:100, function(j) 
      rnorm(50) %>>% c(rnorm(50))))))
#    user  system elapsed 
#    2.70    0.00    2.71

These packages use different set of symbols and are thus compatibile with each other. You may choose according to your needs and considerations.