Использовать явное пространство имен с инфиксным оператором - PullRequest
0 голосов
/ 01 июля 2018

Пакет dplyr R имеет оператор %>%, который является пользовательским инфиксным оператором. Если кто-то присоединяет пространство имен с помощью library(dplyr), можно использовать этот оператор. В библиотечном коде library(dplyr) в верхней части файла не имеет никакого эффекта, поскольку сохраняется среда после выполнения исходного кода; загруженные пакеты не влияют на это.

Итак, чтобы использовать это в моей библиотеке, у меня есть следующие опции:

  1. Просто используйте library(dplyr) в начале каждой функции.
  2. Не используйте инфиксный оператор, а пишите функции без оператора «pipe» %>%.
  3. Попробуйте использовать dplyr::%>%.

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

dplyr::%>%

и получите ошибки разбора. Также

dplyr::`%>%`

не работает. И

`dplyr::%>%`

тоже не работает. Я не думаю, что есть какой-то другой способ поставить галочки. Это возможно в R или мне просто нужно использовать вариант 1 или 2?

1 Ответ

0 голосов
/ 01 июля 2018

Просто импортируйте оператор канала, добавив строку, подобную

importFrom(magrittr, "%>%")

в вашем файле NAMESPACE или, если вы используете roxygen2, введите

#' @importFrom magrittr %>%

в один из ваших .R файлов, чтобы сделать то же самое.

Вы также можете или не хотите экспортировать его. Экспортируйте его с помощью строки вроде

export("%>%")

в вашем NAMESPACE файле или с roxygen2

#' @export
magrittr::`%>%`

если вы хотите, чтобы ваши пользователи использовали оператор pipe, когда они используют ваш пакет. Не экспортируйте его, если он нужен только для внутреннего использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...