我正在尝试使用dplyr
构建一个包。我广泛使用!!
的!!!
和rlang
运算符。
但是,我没有明确地说明这些问题,尽管这个软件包似乎仍然有用。
我错过了环境中的某些东西,还是import
以某种方式覆盖了这个?
如上所述,import(dplyr)
从dplyr
转出tidyeval依赖关系,所以如果你在Imports中有rlang
,你不需要明确导入dplyr
。然而,可能值得问你是否需要所有的rlang
,或者仅仅是tidyeval部分 - 有一些东西可以说是为了将依赖关系保持在最低限度。 dplyr
是一个非常轻量级的依赖包,所以如果你可以直接依赖它,它可以使你的包安装更快,并且(理论上)不太可能破坏外部更新。
如果您发现自己在包开发中使用了大量的引用和取消引用操作符,您还可以查看rlang
。 usethis package's "tidyverse development helpers"“导入一组标准助手,以便利用整洁的eval工具包进行编程。”这是一种快速简便的方法,可以将usethis::use_tidy_eval()
添加到Imports,进口/再出口,并记录rlang
,(en)quo(s)
,(en)sym(s)
,函数,(en)expr(s)
代词和.data
。那么你应该拥有在整个包装中使用tidyeval所需的东西。