% ...% операторів
%>%
не має вбудованого значення, але користувач (або пакет) може визначати оператори форми %whatever%
будь-яким способом, який їм подобається. Наприклад, ця функція поверне рядок, що складається з її лівого аргументу, а потім кома та пробіл, а потім - правильний аргумент.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
Основа R передбачає %*%
(матричне множення), %/%
(ціле ділення), %in%
(є lhs компонентом rhs?), %o%
(Зовнішній продукт) та %x%
(продукт kronecker). Не ясно, %%
потрапляє чи до цієї категорії чи ні, але це модуль.
expm Пакет R, expm, визначає оператор живлення матриці %^%
. Для прикладу див Матриця потужності в R .
оператори Пакет операторів R визначив велику кількість таких операторів, як %!in%
(for not %in%
). Дивіться http://cran.r-project.org/web/packages/operators/operators.pdf
Труби
magrittr У випадку пакету %>%
magrittr R визначено це, як обговорювалося у віньетці magrittr. Дивіться http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr також визначив ряд інших таких операторів. Дивіться розділ Додатково Pipe Оператори попереднього ланки , які обговорюються %T>%
, %<>%
і %$%
та http://cran.r-project.org/web/packages/magrittr/magrittr.pdf для ще більшого кількості деталей.
dplyr Пакет dplyr R, що використовується для визначення %.%
схожого оператора; однак це застаріло і dplyr тепер рекомендує користувачам використовувати, %>%
який dplyr імпортує з magrittr, і робить доступним для користувача dplyr. Як згадував Давид Аренбург у коментарях, це питання питання обговорює відмінності між ним та магтрітром %>%
: відмінності між%.% (Dplyr) та%>% (magrittr)
pipeR Пакет R, pipeR, визначає %>>%
оператора, який схожий на% mritrittr%>% і може використовуватися як альтернатива цьому. Дивіться http://renkun.me/pipeR-tutorial/
Пакет pipeR також визначив і ряд інших таких операторів. Дивіться: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic Визначений пакет операторів %if%
і %unless%
операторів.
wrapr Пакет R, wrapr, визначає крапку, %.>%
яка є явною версією, %>%
оскільки вона не виконує неявну вставку аргументів, а лише замінює явне використання точки з правого боку. Це може розглядатися як інша альтернатива %>%
. Дивіться https://winvector.github.io/wrapr/articles/dot_pipe.html
Труба Бізарро . Це насправді не труба, а скоріше якийсь розумний синтаксис бази, щоб працювати таким чином, як труби, не використовуючи труби. Це обговорюється в http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/ Ідея полягає в тому, щоб замість написання:
1:8 %>% sum %>% sqrt
## [1] 6
один пише наступне. У цьому випадку ми явно використовуємо крапку, а не зводимо аргумент точки і закінчуємо кожен компонент конвеєра присвоєнням змінній, ім'я якої - dot ( .
). Ми слідуємо цим крапкою з комою.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Оновіть додану інформацію про пакет expm та спрощений приклад зверху. Додано постлогічний пакет.
?'%>%'