Ali*_*ina 10 r roxygen roxygen2
我的项目中有一个文件:import_packages.r,包含以下内容:
#' @import reshape2
#' @import ggplot2
#' @import DESeq2
#' @import geneplotter
#' @import survcomp
#' @import gplots
#' @import pheatmap
#' @import RColorBrewer
Run Code Online (Sandbox Code Playgroud)
当我这样做时,devtools:document()这些包不会显示在NAMESPACE文件中,并且实际上并未导入它们.难道我做错了什么?
Sti*_*ibu 11
如果您的文件只包含您提供的行,则roxygen2会忽略它.你应该在包含just的roxygen代码之后添加一行NULL.所以以下应该有效:
#' @import reshape2 ggplot2 DESeq2 geneplotter
#' @import survcomp gplots pheatmap RColorBrewer
NULL
Run Code Online (Sandbox Code Playgroud)
我还减少了向你展示的行数,如何通过一次使用来导入多个包@import.但是对于roxygen而言,分配包裹的线数并不重要.
我认为这是因为roxygen部分必须与某个R对象相关联.例如,函数的文档与相应的函数对象相关联.由于您不希望将导入与函数关联,因此您可以将它们与之关联NULL,这也是一个R对象.
正如hadley正确指出的那样,不建议完全导入那么多包,因为最终可能会出现名称冲突.以下两种选择通常更好:
具有显式包名称和::运算符的引用函数:reshape2::melt()这具有额外的优势,您可以立即看到函数来自哪个包.
使用@importFrom以下方法仅从包中导入所需的功能:
#' @importFrom reshape2 melt cast
Run Code Online (Sandbox Code Playgroud)您可以在此处找到更多信息.
| 归档时间: |
|
| 查看次数: |
2033 次 |
| 最近记录: |