【问题标题】:Error when trying to install package from GitHub尝试从 GitHub 安装包时出错
【发布时间】:2020-12-03 17:53:09
【问题描述】:

我正在尝试从我自己的存储库中安装一个包,以测试这些功能是否有效。存储库的链接在这里:https://github.com/hharder74/SampleMeansII。当我尝试使用以下代码安装它时:

devtools::install_github("hharder74/SampleMeansII")

我收到以下错误:

Error: Failed to install 'unknown package' from GitHub: HTTP error 404. Not Found Did you spell the repo owner (`hharder74`) and repo name (`SampleMeansII`) correctly? - If spelling is correct, check that you have the required permissions to access the repo.

我真的很困惑这个错误来自哪里。这是我第一次尝试将包上传到GitHub,我只是想在将包交给老师之前检查一下是否可以安装包。如果有人需要,这里有一些测试功能的代码:

vec <- runif(100)

sample_mean(vec, 50)
many_sample_means(vec, reps = 10, n = 50)
sample_means_ns(vec, reps = 10, ns = c(5, 50, 500))

【问题讨论】:

    标签: r github installation package


    【解决方案1】:

    您尚未创建包。您刚刚创建了一些包含 R 代码的文件。 R 包具有非常特殊的结构,其中包括说明文件和命名空间文件等内容。理论上您可以自己创建这些,但通常使用devtools::createroxygen 之类的东西为您创建它们更容易。或者,如果您使用的是 RStudio,您可以使用这些文件的默认版本创建一个新的 R 包项目。

    要添加说明文件,请尝试运行

    usethis::use_description()
    

    这将填充您可以更改的默认值。

    然后您需要创建一个 NAMESPACE 文件。如果你只是想让你在 R 文件中定义的所有函数在 pacakge 之外可用,你可以放

    exportPattern("^[[:alpha:]]+")
    

    在那个文件中应该可以工作。

    您还可以考虑遵循http://r-pkgs.had.co.nz/package.htmlhttps://swcarpentry.github.io/r-novice-inflammation/08-making-packages-R/ 之类的指南,以更好地了解创建包。

    一旦你的 repo 看起来像一个合适的 R 包,你就可以使用 devtools::install_github 来安装它。

    请注意,github 可用于跟踪任何类型文件的更改。您可以在 R 脚本中执行您想要跟踪更改并将其保存在 github 上的分析,但将该分析脚本转换为包可能没有意义。当你想在不同的项目中重用函数或数据时,你通常会制作包,然后这些项目可以安装和加载你的包。所以并不是所有的 R 代码都存在于一个 R 包中,但devtools::install_github 只能用于安装实际的包。

    【讨论】:

    • 我通过制作一个 Rproject 文件并将其连接到 GitHub 存储库来创建这个包。我认为这会自动设置这些默认值?
    • R 项目文件不同于 R 包。您可以在包之外使用文件和脚本。包实际上是您希望使其可用于其他项目的函数和数据的集合。
    • Hannah,不幸的是,在 R 将其视为 之前,还需要更多文件。我发现r-pkgs.had.co.nz 是一个很好的资源来了解如何创建一个包;至少在最初,您可能可以跳过文档、小插曲、测试、编译代码等主题……但至少结构和更新它(例如,devtools::document(...)devtools::load_all(...))很重要。
    • (然后,一旦您掌握了基础知识,我强烈鼓励某种形式的文档,其中roxygen2 是一个简单的开始。没有什么比查看您的2 个月后拥有自己的代码,但无法回忆起参数的含义等。它不仅仅是源代码中的 cmets。)
    • 感谢大家的帮助!我按照说明进行操作,我认为我已经掌握了基础知识。我的包裹现在上传到这里:github.com/hharder74/SampleMeansIII。我可以使用 devtools::install_github 安装它,但是当我尝试使用包中的函数时,它说找不到它们。我一定又少了一步……
    猜你喜欢
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多