R:有关分拆和使用packrat快照的说明

时间:2017-01-03 01:00:30

标签: r packrat

我使用packrat(v 0.4.8.-1)来创建R包依赖关系的快照和包,以及相应的R代码。我想向其他人提供R代码和packrat包,以使我正在做的工作(包括R环境)完全可重现。

我使用与用于编写R代码并创建捆绑包的计算机不同的计算机测试了分拆。我在R studio中打开了一个R代码文件,并调用了库(packrat)来加载packrat(也是v 0.4.8-1)。然后我调用了packrat :: unbundle(bundle ="目录",其中="目录"),它已成功解绑。但随后调用packrat :: restore()给了我错误"该项目尚未打包。运行' packrat :: init()'到init packrat"。似乎init()不应该是必需的,因为我不是要创建一个新的快照,而是利用bundle中的那个。 packrat页面(https://rstudio.github.io/packrat/)和CRAN提供了很少的关于分拆的文档来帮助排除故障,或者我可以指向我的代码用户以获取指令(可能熟悉R,但可能没有使用过packrat )。

那么,有人可以提供明确的分步说明,说明捆绑快照的用户应如何拆分,然后使用该保存的快照运行R代码文件?

1 个答案:

答案 0 :(得分:0)

经过一些实验,我发现了一种似乎迄今为止有效的方法。

我为用户提供了三个文件:

-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.代码和相关输入文件的文件夹。

unbundle说明示例:

第1步

保存,但不要将tar文件扩展/解压缩到目录。 访问已保存的包依赖项的问题 当R或R工作室以外的程序更有可能 用于解开tar文件。

如果tar文件已经扩展,请重新保存 tar文件到一个新目录,它应该不一样 directory作为扩展的tar文件,或者是子目录 扩展的tar文件。

第2步

将unbundle.R保存在与tar文件相同的目录中

第3步

使用R studio打开unbundle.R

第4步

执行unbundle.R (这将创建一个子文件夹'code_folder'。 请注意,此步骤可能需要5-15分钟才能运行。)

第5步

关闭R studio

第6步

导航到子文件夹'cold_folder'

第7步

使用R studio打开R脚本 (包库应与下面列出的相对应。 这将表明R studio正在访问已保存的包 的依赖关系。)

第8步

执行R代码,该代码将使用项目包库。 使用上面的方法加载包库之后 步骤,没有必要为每个包重新加载包库 脚本。 R studio将继续访问包依赖项 对于您在R studio会话中打开的每个脚本。如果你 随后关闭R-studio,然后从内部打开脚本 unbundle目录,R studio仍然应该访问 依赖性,无需重新加载已保存的包 快照。