Различия между%.% (Dplyr) и%>% (magrittr)
Пакет dplyr
представил оператору %.%
, чтобы передать левую сторону в качестве аргумента функции справа, подобно трубе * NIX. Пакет magrittr
представляет собой гораздо более легкий пакет, который существует, чтобы определять только тот оператор, похожий на трубу.
Тем не менее один использует %.%
, а другой %>%
.
Есть ли разница между этими двумя? Могу ли я просто использовать %>%
даже в коде dplyr
, или это вызовет тонкие ошибки?
При проверке кода на раннем этапе они принимают очень разные пути, поэтому простое сравнение с глазным яблоком предполагает, что они разные. Я не смог найти ничего документально, когда я ищу в Интернете для них, и я не сталкивался с чем-либо в самой документации.
Ответы
Ответ 1
Различия включают
-
вы можете использовать .
в качестве заполнителя для левой стороны, например.
iris %>% plot(Sepal.Length ~ Sepal.Width, data = .)
-
%>%
respects (rhs)
, например.
1:10 %>% (call("sum"))
1:10 %>% (function(x) x^2 + 2*x)
Для более полезного
пример этого, см.
https://gist.github.com/anonymous/0c69b019d0b4f6ae5050
-
Для
одиночные вызовы функции аргумента, вы можете опустить парсеры:
"2014-05-18" %>% as.Date
Ответ 2
Посмотрите самый первый элемент в текущем файле NEWS:
dplyr теперь импортирует %>%
из magrittr (# 330). Я рекомендую вам использовать это вместо %.%
, потому что его легче набирать (поскольку вы можете удерживать вниз по клавише переключения) и более гибко