[英]R: roxygen2, imported packages do not appear in namespace
我的項目中有一個文件:import_packages.r,包含以下內容:
#' @import reshape2
#' @import ggplot2
#' @import DESeq2
#' @import geneplotter
#' @import survcomp
#' @import gplots
#' @import pheatmap
#' @import RColorBrewer
當我執行devtools:document()
這些包不會顯示在NAMESPACE文件中,並且實際上並未導入它們。 難道我做錯了什么?
如果您的文件只包含您提供的行,則roxygen2會忽略它。 您應該在僅包含NULL
的roxygen代碼之后添加一行。 所以以下應該有效:
#' @import reshape2 ggplot2 DESeq2 geneplotter
#' @import survcomp gplots pheatmap RColorBrewer
NULL
我還減少了向您展示的行數,通過一次使用@import
可以導入幾個包。 但是對於roxygen而言,分配包裹的線數並不重要。
我認為這是因為roxygen部分必須與某個R對象相關聯。 例如,函數的文檔與相應的函數對象相關聯。 由於您不希望將導入與函數關聯,因此可以將它們與NULL
關聯,這也是一個R對象。
正如hadley正確指出的那樣,不建議完全導入那么多包,因為最終可能會出現名稱沖突。 以下兩種選擇通常更好:
引用函數及其顯式包名稱和::
運算符: reshape2::melt()
這具有額外的優勢,您可以立即看到函數來自哪個包。
使用@importFrom
包中導入所需的功能:
#' @importFrom reshape2 melt cast
您可以在此處找到更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.