R:roxygen2,导入的包不会出现在命名空间中
我的项目中有一个文件:import_packages.r,包含以下内容:R:roxygen2,导入的包不会出现在命名空间中,r,roxygen2,roxygen,R,Roxygen2,Roxygen,我的项目中有一个文件:import_packages.r,包含以下内容: #' @import reshape2 #' @import ggplot2 #' @import DESeq2 #' @import geneplotter #' @import survcomp #' @import gplots #' @import pheatmap #' @import RColorBrewer 当我执行devtools:document()时,这些包不会显示在名称空间文件中,实际上也不会导入。
#' @import reshape2
#' @import ggplot2
#' @import DESeq2
#' @import geneplotter
#' @import survcomp
#' @import gplots
#' @import pheatmap
#' @import RColorBrewer
当我执行devtools:document()
时,这些包不会显示在名称空间文件中,实际上也不会导入。
我做错了什么吗?如果您的文件只包含您提供的行,那么roxygen2会忽略它。您应该在roxygen代码后添加一行,该行只包含
NULL
。因此,以下措施应该有效:
#' @import reshape2 ggplot2 DESeq2 geneplotter
#' @import survcomp gplots pheatmap RColorBrewer
NULL
我还减少了行数,向您展示了如何一次使用@import
导入几个包。但是对于roxygen来说,你在多少条线上分发软件包并不重要
我认为这是因为roxygen截面必须与某个R物体相关联。例如,函数的文档与相应的函数对象相关联。由于您不希望将导入与函数关联,因此可以将它们与NULL
关联,后者也是一个R对象
正如正确指出的,不建议完全导入那么多包,因为最终可能会出现名称冲突。以下两种选择通常更好:
- 带有显式包名和
运算符的引用函数::
这有一个额外的优点,您可以立即看到函数来自哪个包重塑2::melt()
- 使用
,仅从软件包中导入所需的函数:@importFrom
#' @importFrom reshape2 melt cast
您可以找到更多信息。有时删除
名称空间文件有助于重新创建该文件。@drmariod没有帮助。这些包仍然没有出现在名称空间中。值得注意的是,完全导入许多包不是推荐的做法。@hadley感谢您的输入。稍后我将补充几句关于更好实践的话。