gpt4 book ai didi

r - 将 R 与 git 和 packrat 一起使用

转载 作者:行者123 更新时间:2023-12-03 12:33:15 26 4
gpt4 key购买 nike

我使用 git 已经有一段时间了,但最近才开始使用 packrat。我希望我的存储库是自包含的,但同时我不想包含 CRAN 包,因为它们是可用的。似乎一旦在带有 packrat 的项目中打开 R,它就会尝试使用项目库中的包;如果它们不可用,那么它将尝试从项目库中的 src 安装;如果它们不可用,它将查看该计算机中安装的库。如果计算机中没有可用的库;接下来会看 CRAN 吗?

我的 git 存储库中至少应该包含哪些文件(例如 packrat.lock)?

最佳答案

您可以选择使用您希望项目可用的包的源 tarball 及其版本设置一个类似 CRAN 的外部存储库。但是,默认行为是接下来查看 CRAN,正如您在问题中所确定的那样。查看 packrat.lock 文件,您会看到对于您在 packrat 中使用的每个包,都有一个名为 source: CRAN 的选项。 (如果您已经从 CRAN 下载了文件,那就是)。

当您有本地存储的包源文件时,该包的锁定内容将更改为以下内容:
Package: FooPackage
Source: source
Version: 0.4-4
Hash: 44foo4036fb68e9foo9027048d28
SourcePath: /Users/MyName/Documents/code/myrepo/RNetica

我对你的最后一个问题有点不清楚:What files should I include in my git repo as a minimum (e.g., packrat.lock)?但我将把它作为 a) 应该存在哪些文件供 packrat 运行的组合,以及 b) 这些文件中的哪些应该提交到 git-repo。为了回答第一个问题,我在现有 R 项目上初始化 Packrat 进行说明。

当你运行 packrat::init() ,发生了两件重要的事情(除其他外):
1.所有的packrat脚手架,包括源tarballs等都创建在:PackageName/packrat/ .
2. packrat/lib*/已添加到您的 .gitignore 文件中。

所以从这里,我们可以看到 packrat/lib*/ 下的任何内容不需要致力于您的 git-repo。这留下了以下 3 个要提交的文件:

  • packrat/init.R
  • packrat/packrat.lock
  • packrat/packrat.opts
  • packrat.lock需要通过版本控制系统与他人协作;它有助于使您的私有(private)图书馆保持同步。 packrat.opts允许您为 Packrat 指定不同的项目特定选项。该文件是使用 get_opts 自动生成的。和 set_opts .将此文件提交到 git-repo 将确保为所有协作者维护您指定的任何选项。要提交到 repo 的最终文件是 .Rprofile .该文件告诉 R 使用私有(private)包库(当 R 从项目目录启动时)。

    根据您的需要,您可以选择是否将源 tar 包提交到存储库。如果您不希望它们在您的 git-repo 中可用,您只需添加 packrat/src/到.gitignore。但是,这将意味着任何访问 git-repo 的人都无法访问包源代码,并且文件将从 CRAN 下载,或者从源代码行在 packrat.lock 中指定的任何位置下载。文件。

    从您的问题来看,这听起来像是提交 packrat/src/存储库的文件夹内容可能是您需要的。

    关于r - 将 R 与 git 和 packrat 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187543/

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