Нет необходимости импортировать операторы `!!!` в пакет. ОПИСАНИЕ? - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь собрать пакет, используя dplyr.Я широко использовал !! и !!! операторы из rlang.

Тем не менее, я не import их явно, хотя пакет, кажется, все же работает.

Я что-то упускаю в окружающей среде, или import(dplyr) как-то покрывает это?

1 Ответ

3 голосов
/ 26 апреля 2019

Как сказано выше, dplyr реэкспортирует зависимости tidyeval от rlang, поэтому, если у вас есть dplyr в Imports, вам не нужно явно импортировать rlang. Однако, возможно, стоит спросить, нужны ли вам все dplyr или только части, приведенные выше, - есть что сказать, чтобы свести зависимости к минимуму. rlang очень легок в зависимости от пакета, поэтому, если вы можете обойтись без зависимости только от него напрямую, это может ускорить установку вашего пакета и (теоретически) с меньшей вероятностью порвать с внешним обновлением.

Если вы обнаружите, что при разработке пакетов вы используете много операторов цитирования и отмены цитирования, вы также можете проверить , использующих этот пакет "помощники по разработке tidyverse" . usethis::use_tidy_eval() "импортирует стандартный набор помощников для облегчения программирования с помощью набора инструментов tidy eval." Это быстрый и простой способ добавить rlang в Imports, а также импортировать / реэкспортировать и документировать (en)quo(s), (en)sym(s), (en)expr(s), функции, .data местоимение и :=. Тогда у вас должно быть то, что вам нужно, чтобы использовать tidyeval в вашем пакете.

...