无需将“ !!!”运算符导入包DESCRIPTION?

时间:2019-04-26 13:57:13

标签: r dplyr devtools rlang

我正在尝试使用dplyr构建软件包。我广泛使用了!!中的!!!rlang运算符。

但是,尽管该程序包似乎仍然可以正常工作,但我没有明确import它们。

我在环境中丢失了某些东西吗,还是import(dplyr)以某种方式掩盖了这个问题?

1 个答案:

答案 0 :(得分:3)

如上所述,dplyrrlang重新导出tidyeval依赖项,因此,如果您在导入中有dplyr,则无需显式导入rlang 。但是,可能值得一问的是,您是否需要dplyr的全部,还是仅需要tidyeval的部分-可以说需要将依赖项降至最低。 rlang是非常轻量级的软件包依赖关系,因此,如果您可以避免直接依赖于它,则可以使您的软件包安装得更快,并且在理论上不会因外部更新而中断。

如果发现自己在软件包开发中使用了很多引号和引号运算符,则还可以签出usethis package's "tidyverse development helpers"usethis::use_tidy_eval()“导入一组标准的帮助程序,以利于使用整洁的评估工具包进行编程。”这是将rlang添加到“导入”,以及导入/重新导出和记录(en)quo(s)(en)sym(s)(en)expr(s),函数,.data的快捷简便的方法代词和:=。然后,您应该在整个包装中都具备使用tidyeval的需求。