【问题标题】:R package downloaded from Github missing functions从 Github 下载的 R 包缺少功能
【发布时间】:2019-11-13 04:09:36
【问题描述】:

我正在向 GitHub (EwersLabUWyo/AquaFlux) 发布一个 R 包。上传到 Github 似乎有效。在一个新的 RStudio 实例中,我成功下载了包进行检查,但是 R 中没有出现任何功能。

 devtools::install_github("EwersLabUWyo/AquaFlux")
 library(AquaFlux)
 AquaFlux::AquaFlux()
 Error: could not find function "AquaFlux"

到目前为止的处理/检查:

  • 在 RStudio 中创建了 AquaFlux 包。

  • 使用 RStudio 包检查工具彻底检查了 R 包。我在上传包之前解决了所有错误。

  • 我使用 Github Desktop 成功上传了包。

  • 确认“AquaFlux”与所有正确的文件一起出现在 Github 目录中。

  • 确认文件已从 Github 存储库下载到我计算机的 R 库。格式与它们在 Github 中的显示方式不同,但它们就在那里。

****更新响应 cmets****

在开发过程中,我尝试使用 roxygen2 来帮助构建包,但它似乎不起作用,所以几周前我放弃了它。 NAMESPACE 文件为空白,并显示“请勿手动编辑”。

我确实去更新了说明文件以包含“出口:AquaFlux.Rd”,但它仍然无法正常工作。

我可以确认我的本地副本和在线 git repo 之间的所有文件都匹配。

【问题讨论】:

  • 确认您已将本地包的正确和完整副本上传到 GitHub,特别是所有函数都在 R 文件中定义,并且它们已在 NAMESPACE 文件中导出。如果文件在 GitHub 上以不同于本地的“格式”出现,这是一个主要的危险信号。 ——那到底是什么意思?
  • NAMESPACE 中缺少信息似乎确实是个问题。我正试图弄清楚如何解决这个问题。

标签: r github download devtools


【解决方案1】:

我刚刚看了你的github。您似乎正在使用 roxygen2 但尚未使用特殊标签来记录您的功能。 请查看introduction 到 roxygen2,更具体地说是managing NAMESPACE

我相信你正在寻找

#' @export
AquaFlux <- function() {
  shiny::shinyApp(.AquaFlux.ui, .AquaFlux.server)
}

在您的 AquaFlux_master.R 文件中。这个导出标签使得 Roxygen 在允许用户调用函数的命名空间中编写这个函数。所有没有导出标签的函数都被认为是内部函数,只能由包调用,而不是用户调用。

还要确保您的项目配置为在构建设置中使用 Roxygen 生成文档。

【讨论】:

  • 我应该注意,Roxygen 可能希望您提供更多标签,而不仅仅是 #' @export,您可以找到更全面的 Roxygen 文档指南here
猜你喜欢
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多