Rにおける%>%関数の意味
原題: Что означает функция%>% в R?
分析結果
- カテゴリ
- 経済
- 重要度
- 45
- トレンドスコア
- 9
- 要約
- R言語における%>%は、パイプ演算子と呼ばれ、dplyrやrvestなどのパッケージで使用されます。この演算子は、左側の結果を右側の関数の最初の引数として渡すことを可能にし、コードをより読みやすく、直感的にします。これにより、データの処理や変換を連鎖的に行うことができ、コードの可読性が向上します。
- キーワード
Что означает функция%>% в R? Что означает функция%>% в R? 120 Я видел использование функции %>% (процент больше, чем процент) в некоторых пакетах, таких как dplyr и rvest . Что это означает? Это способ писать закрывающие блоки в R? r syntax dplyr magrittr r-faq — альфакини источник 10 или посмотрите ?'%>%' — jbaums 6 Спасибо, Дэвид! jbaums, к сожалению, об этом нет документации. ? '%>%' возвращает «Нет документации для '%>%' в указанных пакетах и библиотеках» — альфакини 6 @alf. вам нужно library(magrittr) или library(dplyr) сначала, а затем запустить ?'%>%' , хотя моя ссылка дает больше информации — Дэвид Аренбург 1 Также, взгляните сюда — Дэвид Аренбург 1 Связанный: Что означает%>% в R — Джошуа Ульрих Ответы: 142 % ...% операторов %>% не имеет встроенного значения, но пользователь (или пакет) может определять операторы формы %whatever% любым способом. Например, эта функция вернет строку, состоящую из ее левого аргумента, за которым следуют запятая и пробел, а затем - правый аргумент. "%,%" <- function ( x , y ) paste0 ( x , ", " , y ) # test run "Hello" %,% "World" ## [1] "Hello, World" Основание R обеспечивает %*% (матричное умножение), %/% (целочисленное деление), %in% (является ли lhs компонентом rhs?), %o% (Внешний продукт) и %x% (произведение кронекера). Неясно, %% попадает ли в эту категорию или нет, но она представлена по модулю. 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. Как упомянул Дэвид Аренбург в комментариях, этот вопрос SO обсуждает различия между ним и magrittr's %>% : Различия между%.% (Dplyr) и%>% (magrittr) pipeR Пакет R, pipeR, определяет %>>% оператор, который похож на%>% magrittr и может использоваться как альтернатива ему. См. Http://renkun.me/pipeR-tutorial/ В пакете pipeR также определен ряд других таких операторов. См .: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf postlogic Пакет 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 и упрощенный пример вверху. Добавлен постлогический пакет. — Г. Гротендик источник 1 Я также вижу:% <>%,% T>%,% $%, что они делают? rpackages.ianhowson.com/cran/magrittr/man/pipe.html — pluke Изнутри R после загрузки magrittr получить помощь, используя: ?"%<>%" и т. Д. — Г. Гротендик 17 После прочтения ссылки, предложенной Г. Гротендиком, я понял , что%>% - это оператор, который выполняет функции конвейера . Это способствует удобочитаемости и продуктивности, поскольку легче отслеживать поток нескольких функций через эти каналы, чем возвращаться назад, когда несколько функций вложены. — Франсиско Лопес-Санчо источник Упомянутые вами преимущества демонстрируются здесь на примерах кода . — Кристофер Стефан 9 %>% похож на pipe в Unix. Например, в a <- combined_data_set %>% group_by ( Outlet_Identifier ) %>% tally () выход combined_data_set войдет в group_by и его выход войдет в tally , затем будет назначен окончательный выход a . Это дает вам удобный и простой способ последовательного использования функций без создания переменных и хранения промежуточных значений. — РАДЖАТ БХАТХЕДЖА источник -1 Пакеты R dplyr и sf импортируют оператор%>% из пакета R magrittr. Справка доступна с помощью следующей команды: ? '%>%' Конечно, пакет должен быть загружен перед использованием, например, library ( sf ) Документация оператора прямой трубы magrittr дает хороший пример: когда функциям требуется только один аргумент, x%>% f эквивалентно f (x) — HKE источник 1 Похоже, это уже хорошо объяснено в stackoverflow.com/a/27129032/570918 . — merv Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности . Licensed under cc by-sa 3.0 with attribution required.