我使用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”,其中=“directory”),该操作成功解除了捆绑。但是随后调用packrat::restore()给了我错误“该项目尚未打包。运行'packrat::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软件包开发的先决条件(Windows的Rtools,Mac的XCode)),并包括sessionInfo()的输出,以记录R代码在说明后应使用的R软件包版本。被跟随。在下面的示例中,“code_folder”是指tar.gz文件中的一个文件夹,其中包含R.code和相关的输入文件。
捆绑说明示例:
第1步
将tar文件保存但不将其扩展/解压缩到目录中。
访问已保存的程序包依赖项时出现问题
R或R studio以外的程序时更有可能
用于解压缩tar文件。
如果tar文件已经展开,请重新保存
tar文件到新目录,该目录不应相同
目录作为扩展的tar文件,或者是其子目录
扩展的tar文件。
第2步
将unbundle.R与tar文件保存在同一目录中
第三步
使用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 studio会话中打开的每个脚本。如果你
随后关闭R-studio,然后从内部打开脚本
取消捆绑目录,R studio仍应访问
依赖项,而无需重新加载已保存的程序包
快照。

关于r - R:取消捆绑和使用packrat快照的说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41435077/

10-09 03:43