Различия между %.% (dplyr) и %›% (magrittr)

Пакет dplyr представил оператор %.% для передачи левой части в качестве аргумента функции с правой стороны, подобно конвейеру *NIX. Пакет magrittr — гораздо более легкий пакет, который существует для определения только этого оператора, похожего на канал.

Тем не менее, один использует %.%, а другой %>%.

Есть ли разница между ними? Могу ли я просто использовать %>% даже в коде dplyr, или это приведет к незначительным ошибкам?

При проверке кода они на раннем этапе идут очень разными путями, поэтому простое сравнение глазных яблок предполагает, что они разные. Я не смог найти ничего задокументированного, когда искал их в Интернете, и я не наткнулся ни на что в самой документации.


person Ari B. Friedman    schedule 13.05.2014    source источник
comment
Обновление: возможные ответы скрываются в комментариях здесь: blog.rstudio.org/2014 /01/17/introduction-dplyr   -  person Ari B. Friedman    schedule 13.05.2014


Ответы (2)


dplyr теперь импортирует %>% из magrittr и использует его по умолчанию. Подробности см. в этом ответе.


Различия включают

  • вы можете использовать . в качестве заполнителя для левой стороны, например.

     iris %>% plot(Sepal.Length ~ Sepal.Width, data = .)
    
  • %>% уважает (rhs), например.

     1:10 %>% (call("sum"))
     1:10 %>% (function(x) x^2 + 2*x) 
    

    Более полезный пример см. на странице
    https://gist.github.com/anonymous/0c69b019d0b4f6ae5050

  • Для вызовов функций с одним аргументом вы можете опустить скобки:

     "2014-05-18" %>% as.Date
    
person Stefan    schedule 18.05.2014

См. самый первый элемент в текущем файле NEWS:

dplyr теперь импортирует %>% из magrittr (#330). Я рекомендую вам использовать его вместо %.%, потому что его легче набирать (поскольку вы можете удерживать нажатой клавишу Shift) и он более гибкий.

person Dirk Eddelbuettel    schedule 13.05.2014
comment
но теперь я могу видеть эту информацию и (может быть?) не подвергаться штрафу rtfm? - person WestCoastProjects; 20.05.2018
comment
SOF - лучшее средство для нечеткого (я даже не знаю, какой именно термин используется для этой концепции ...) поиска документации. - person WestCoastProjects; 20.05.2018
comment
Я бы сказал, что это должен быть новый принятый ответ, потому что другой на данный момент более или менее устарел. - person qdread; 10.01.2019