将包放在 "Depends" 部分的替代方法

Alternatives to placing package in "Depends" section

我正在编写一个小程序包,它使用 ggplot2 构建一些自定义类型的图表。自然地,我的源文件中会充斥着 ggplot2 函数。我对包开发有些陌生,我的理解是在包源中使用 :: 来消除命名空间的歧义通常更好。但是将 ggplot2:: 放在所有内容的前面似乎是让我的代码变得混乱的好办法——我想让它尽可能地易读和清晰,以便我的同事也能更轻松地处理我的代码。

有没有办法让我的源文件访问 ggplot2 命名空间?在包中使用 library 似乎是一个很大的禁忌。将 ggplot2 放在包 DESCRIPTION almost 中的 "Depends" 下即可,但仅在我附加包时附加 ggplot2(因此,如果我的包已加载但未加载,则会导致问题随附的)。当我的包 loaded 时,找到一种自动 attach ggplot2 的方法可以解决这些问题,尽管直觉告诉我这可能是一种不好的做法。

如前所述 here,您可以在 roxygen 评论中执行此操作:

If you are using many functions from another package, use @import package to import them all and make available without using ::.

您最好将它放在 R/packagename-package.R 文件中,该文件具有其他标准的 roxygen 标签,例如:

#' @docType package
#' @name packagename
#' @import ggplot2
NULL