簡體   English   中英

R:roxygen2,導入的包不會出現在命名空間中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM