R:解绑和使用 Packrat 快照的说明
R: instructions for unbundling and using a packrat snapshot
我使用 packrat (v 0.4.8.-1) 创建了 R 包依赖项的快照和捆绑包,这些依赖项与相应的 R 代码一起使用。我想向其他人提供 R 代码和 packrat 包,使我正在做的工作(包括 R 环境)完全可重现。
我使用与我用来编写 R 代码和创建捆绑包的计算机不同的计算机测试了拆分。我在 R studio 中打开了一个 R 代码文件,并调用了 library(packrat) 来加载 packrat(也是 v 0.4.8-1)。然后我调用了 packrat::unbundle(bundle = "directory", where = "directory"),它成功解绑了。但随后调用 packrat::restore() 给了我错误 "This project has not yet been packified. Run 'packrat::init()' to init packrat"。似乎 init() 应该不是必需的,因为我不是在尝试创建新快照,而是利用捆绑包中的快照。 packrat 页面 (https://rstudio.github.io/packrat/) 和 CRAN 提供了很少的关于分拆的文档来帮助解决这个问题,或者我可以向我的代码的用户指出说明(他们可能会熟悉 R,但可能没有使用过 packrat ).
那么,有人可以提供清晰的分步说明,说明捆绑快照的用户应如何解除捆绑,然后将保存的快照用于 运行 R 代码文件吗?
经过一些试验,我发现了一种目前看来行之有效的方法。
我已经为用户提供了三个文件:
-tar.gz (packrat bundle file)
-unbundle.R (R code file that includes a library statement to load
the packrat library, and the unbundle command for the tar.gz file)
-unbundle_readme.txt
自述文件包含与以下类似的说明,到目前为止,用户已经能够 运行 使用包依赖项编写 R 代码。自述文件告诉用户有关要求(R、R studio、packrat、R 包开发先决条件(Rtools for Windows、XCode for Mac)),并包括 sessionInfo() 的输出到记录遵循说明后 R 代码应使用的 R 包版本。在下面的示例中,'code_folder' 指的是 tar.gz 文件中包含 R. 代码和相关输入文件的文件夹。
解绑说明示例:
第 1 步
保存,但不expand/unzip,将tar文件保存到目录。
访问保存的包依赖项时出现问题
更有可能是 R 或 R studio 以外的程序
用于解绑 tar 文件。
如果tar文件已经展开,重新保存
tar 文件到新目录,不应该是同一个目录
目录作为扩展的 tar 文件,或
扩展的 tar 文件。
第 2 步
将 unbundle.R 保存在与 tar 文件相同的目录中
步骤 3
使用 R studio 打开 unbundle.R
第 4 步
执行unbundle.R
(这将创建一个子文件夹“code_folder”。
请注意,此步骤可能需要 5-15 分钟才能 运行。)
第 5 步
关闭 R 工作室
第 6 步
导航到子文件夹“cold_folder”
第 7 步
使用 R studio 打开 R 脚本
(包库应与下面列出的对应。
这将指示 R studio 正在访问保存的包
依赖项。)
步骤 8
执行R代码,这将利用项目包库。
使用上述方法加载包库后
步骤,没有必要为每个重新加载包库
脚本。 R studio 将继续访问包依赖项
对于您在 R 工作室会话中打开的每个脚本。如果你
随后关闭 R-studio,然后从内部打开脚本
解包目录,R studio 仍应访问
无需重新加载已保存包的依赖项
快照。
我使用 packrat (v 0.4.8.-1) 创建了 R 包依赖项的快照和捆绑包,这些依赖项与相应的 R 代码一起使用。我想向其他人提供 R 代码和 packrat 包,使我正在做的工作(包括 R 环境)完全可重现。
我使用与我用来编写 R 代码和创建捆绑包的计算机不同的计算机测试了拆分。我在 R studio 中打开了一个 R 代码文件,并调用了 library(packrat) 来加载 packrat(也是 v 0.4.8-1)。然后我调用了 packrat::unbundle(bundle = "directory", where = "directory"),它成功解绑了。但随后调用 packrat::restore() 给了我错误 "This project has not yet been packified. Run 'packrat::init()' to init packrat"。似乎 init() 应该不是必需的,因为我不是在尝试创建新快照,而是利用捆绑包中的快照。 packrat 页面 (https://rstudio.github.io/packrat/) 和 CRAN 提供了很少的关于分拆的文档来帮助解决这个问题,或者我可以向我的代码的用户指出说明(他们可能会熟悉 R,但可能没有使用过 packrat ).
那么,有人可以提供清晰的分步说明,说明捆绑快照的用户应如何解除捆绑,然后将保存的快照用于 运行 R 代码文件吗?
经过一些试验,我发现了一种目前看来行之有效的方法。
我已经为用户提供了三个文件:
-tar.gz (packrat bundle file)
-unbundle.R (R code file that includes a library statement to load
the packrat library, and the unbundle command for the tar.gz file)
-unbundle_readme.txt
自述文件包含与以下类似的说明,到目前为止,用户已经能够 运行 使用包依赖项编写 R 代码。自述文件告诉用户有关要求(R、R studio、packrat、R 包开发先决条件(Rtools for Windows、XCode for Mac)),并包括 sessionInfo() 的输出到记录遵循说明后 R 代码应使用的 R 包版本。在下面的示例中,'code_folder' 指的是 tar.gz 文件中包含 R. 代码和相关输入文件的文件夹。
解绑说明示例:
第 1 步
保存,但不expand/unzip,将tar文件保存到目录。 访问保存的包依赖项时出现问题 更有可能是 R 或 R studio 以外的程序 用于解绑 tar 文件。
如果tar文件已经展开,重新保存 tar 文件到新目录,不应该是同一个目录 目录作为扩展的 tar 文件,或 扩展的 tar 文件。
第 2 步
将 unbundle.R 保存在与 tar 文件相同的目录中
步骤 3
使用 R studio 打开 unbundle.R
第 4 步
执行unbundle.R (这将创建一个子文件夹“code_folder”。 请注意,此步骤可能需要 5-15 分钟才能 运行。)
第 5 步
关闭 R 工作室
第 6 步
导航到子文件夹“cold_folder”
第 7 步
使用 R studio 打开 R 脚本 (包库应与下面列出的对应。 这将指示 R studio 正在访问保存的包 依赖项。)
步骤 8
执行R代码,这将利用项目包库。 使用上述方法加载包库后 步骤,没有必要为每个重新加载包库 脚本。 R studio 将继续访问包依赖项 对于您在 R 工作室会话中打开的每个脚本。如果你 随后关闭 R-studio,然后从内部打开脚本 解包目录,R studio 仍应访问 无需重新加载已保存包的依赖项 快照。