gpt4 book ai didi

R: roxygen2,导入的包没有出现在命名空间中

转载 作者:行者123 更新时间:2023-12-04 01:02:24 25 4
gpt4 key购买 nike

我的项目中有一个文件: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

  • 您可以找到更多信息 here .

    关于R: roxygen2,导入的包没有出现在命名空间中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35750967/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com