Search code examples
rmagrittr

What does the %<>% operator mean in R?


  1. What does the %<>% operator do in R ?
  2. What's the difference between using %<>% and <- ?
  3. In what type of circumstances %<>% could be useful ?

Solution

  • The help, ?magrittr::`%<>%`, answers all your questions, if you are refering to magrittr`s compound assignment pipe-operator:

    [...] %<>% is used to update a value by first piping it into one or more rhs expressions, and then assigning the result. For example, some_object %<>% foo %>% bar is equivalent to some_object <- some_object %>% foo %>% bar. It must be the first pipe-operator in a chain, but otherwise it works like %>%.

    So

    library(magrittr)
    set.seed(1);x <- rnorm(5)
    x %<>% abs %>% sort
    x
    # [1] 0.1836433 0.3295078 0.6264538 0.8356286 1.5952808
    

    is the same as

    set.seed(1);x <- rnorm(5)
    x <- sort(abs(x))
    x
    # [1] 0.1836433 0.3295078 0.6264538 0.8356286 1.5952808