R 将包装放入“包装”的替代方案;“视情况而定”;部分

R 将包装放入“包装”的替代方案;“视情况而定”;部分,r,package,package-development,R,Package,Package Development,我正在编写一个小程序包,它使用ggplot2构建一些自定义类型的图形。当然,我的源文件将充斥着ggplot2函数。我对包开发有些陌生,我的理解是,通常最好在包源代码中使用:消除名称空间的歧义。但是把ggplot2::放在所有东西前面似乎是让我的代码变得杂乱无章的好办法——我想让它尽可能可读和清晰,让我的同事也能更轻松地处理我的代码 有没有办法让我的源文件访问ggplot2命名空间?在包中使用library似乎是一个很大的禁忌。在包描述中的“Depends”下放置ggplot2几乎可以做到这一点,

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

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

如前所述,您可以在
roxygen
注释中执行此操作:

如果您正在使用另一个软件包中的许多函数,请使用@import-package将它们全部导入,并在不使用以下命令的情况下使其可用:

最好将其放在
R/packagename package.R
文件中,该文件具有其他标准的roxygen标记,如下所示:

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

在名称空间文件中,可以使用import():(从包中导入所有函数)或importFrom()(导入选定函数,包括S4泛型)。看见