R包:如何根据名称空间导入自动生成DESC中的“Imports”字段

R包:如何根据名称空间导入自动生成DESC中的“Imports”字段,r,devtools,roxygen2,R,Devtools,Roxygen2,我正在开发一个R包,我经常使用其他包中的函数。我知道,在源代码中明确说明其他包通常是最好的做法(如dplyr::filter()),但是,例如,在基于ggplot2的绘图函数中,编写类似ggplot2::ggplot(data,ggplot2::aes(x=…)之类的内容会变得冗长乏味 假设我按照建议在相应的函数中添加@import ggplot2标记作为roxygen注释。现在,这将import(ggplot2)添加到名称空间文件中,这很好。但是,它没有将ggplot2添加到DESCRIPTI

我正在开发一个R包,我经常使用其他包中的函数。我知道,在源代码中明确说明其他包通常是最好的做法(如
dplyr::filter()
),但是,例如,在基于
ggplot2
的绘图函数中,编写类似
ggplot2::ggplot(data,ggplot2::aes(x=…)
之类的内容会变得冗长乏味

假设我按照建议在相应的函数中添加
@import ggplot2
标记作为roxygen注释。现在,这将
import(ggplot2)
添加到
名称空间
文件中,这很好。但是,它没有将
ggplot2
添加到
DESCRIPTION
文件中的
Imports:
部分,这正是我想要做的。调用
roxygen2::roxygenize()
也不能做到这一点

请注意,基本上提出了相同的问题,但除非我遗漏了什么,否则问题不会得到回答(毕竟,
Imports:
部分不会自动生成,只有
名称空间
文件)


我知道正确维护
名称空间
文件的重要性,并且考虑到填充该文件的方法简单方便,我想我的主要问题是是否有一个函数可以自动“翻译”
名称空间
导入到
描述
中的相应字段中。我知道您可以通过
usethis::use_package(“ggplot2”)
手动编辑您的
说明
文件,但我觉得必须以两种完全不同的方式指定相同的信息两次似乎有些奇怪。

据我所知,这是不可能的。然而,我发现这可能会对你有所帮助。我也相信这是不可能的。我怀疑原因是,在源代码中为其他包定义对函数的调用范围是一种很好的做法。这样你的意图就明确无误了。依赖间接范围界定(通过描述或其他方式)是不可取的。是的,这对包创建者来说(稍微)不方便,但也有好处:对开发者和用户都有好处。