我正在尝试使用dplyr
构建软件包。我广泛使用了!!
中的!!!
和rlang
运算符。
但是,尽管该程序包似乎仍然可以正常工作,但我没有明确import
它们。
我在环境中丢失了某些东西吗,还是import(dplyr)
以某种方式掩盖了这个问题?
答案 0 :(得分:3)
如上所述,dplyr
从rlang
重新导出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的需求。