Nicolas Molano
Nicolas Molano

Reputation: 734

use of pipe operator "%>%" using :: in R

I am building an R package and I am using intensively the pipe operator %>%. I am wandering how to call it from purrr package using :: operator. I have tried purrr::%>% but get an error.

I appreciate any guide on this.

P.D: should I call the pipe operator from magrittr rather than purrr?

Upvotes: 2

Views: 1780

Answers (2)

LMc
LMc

Reputation: 18732

Starting in R version 4.1.0 there is now a base R pipe operator: |>

iris |>
  summary()

  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width          Species  
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100   setosa    :50  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300   versicolor:50  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300   virginica :50  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199                  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800                  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500 

Upvotes: 1

Bill Venables
Bill Venables

Reputation: 101

Your best approach is to import it from magrittr and re-export it if you want your users to be able to access it.

Using it internally to your package only, this may work:

`%>%` <- purrr::`%>%`

check:

iris %>% summary
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
       Species  
 setosa    :50  
 versicolor:50  
 virginica :50  

You cannot use purrr::`%>%` directly in expressions as the operator needs to be syntactically exposed as a binary operator, i.e. as %>% (without qualification).

Upvotes: 5

Related Questions