2017-01-03 4 views
3

packrat(v 0.4.8.-1)を使用して、対応するRコードに沿ったRパッケージの依存関係のスナップショットとバンドルを作成しました。 Rコードとpackratバンドルを提供して、私がやっている作業(R環境を含む)を完全に再現できるようにしたい。R:packatスナップショットをアンバンドリングして使用するための手順

Rコードを書いてバンドルを作成するのとは別のコンピュータを使ってアンバンドリングをテストしました。私はRスタジオにRコードファイルをオープンし、packratをロードするライブラリ(packrat)を呼び出しました(これもv 0.4.8-1)。私はpackat :: unbundle(bundle = "directory"、where = "directory")を呼び出しました。これは正常にアンバンドルされました。しかし、packat :: restore()を呼び出すと、 "このプロジェクトはまだパッケージ化されていません。packrat :: init() 'をinit packratに実行します"というエラーが表示されました。私は新しいスナップショットを作成しようとしているのではなく、バンドル内のスナップショットを利用しようとしているのでinit()は必要ではないはずです。パックラットページ(https://rstudio.github.io/packrat/)とCRANは、この問題を解決するためのアンバンドリングに関するドキュメンテーションをほとんど提供していません。また、私のコードのユーザーに指示を教えることができます。(Rに精通していますがpackratを使用していない可能性があります。

バンドルされたスナップショットのユーザーがどのようにアンバンドルするべきかについて明確なステップバイステップの指示をしてから、その保存されたスナップショットを使用してRコードファイルを実行できますか?

+0

沈黙に基づいて、[パッケージの問題のページ](https://github.com/rstudio/packrat/issues?utf8=%E2%)でこの質問/ポイントを取る方が適切かもしれないようです。 9C%93&q =%3Aissue%20is%3Aopen%20unbundle%20)。良い質問、btw。 – r2evans

答えて

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 

readmeファイルには以下のものと同様の手順、およびこれまでのユーザーパッケージの依存関係を使用してRのコードを実行することができましたが含まれています。 readmeファイルは、Rコードが指示の後に使用すべきRパッケージのバージョンを文書化するためのsessionInfo()の出力を含みます(R、Rスタジオ、packrat、Rパッケージ開発の前提条件(Windows用Rtools、Mac用XCode)追跡される。以下の例では、 'code_folder'はR.コードと関連入力ファイルを含むtar.gzファイル内のフォルダを指します。

例UNBUNDLE説明:

ステップ1

保存、しかし、ディレクトリに/解凍、tarファイルを展開しません。 保存パッケージの依存関係にアクセスする際の問題 は、RまたはRスタジオ 以外のプログラムを使用してtarファイルのバンドルを解除すると発生しやすくなります。

tarファイルには、既に展開tarファイル、または 拡大tarファイルのサブディレクトリと同じディレクトリ すべきではない新しいディレクトリに tarファイルを再保存し、拡大された場合。

ステップ2 tarファイル

ステップ3

オープンunbundle.R Rのスタジオを使用して

ステップ4

実行と同じディレクトリにある

保存unbundle.Rアンバンドル.R (これにより、サブフォルダ 'code_folder'が作成されます。 この手順では、実行するには5〜15分。)

ステップ5

閉じるRスタジオ

ステップ6

移動サブフォルダ 'cold_folder'

ステップ7

オープンRスタジオ を用いRスクリプトに(パッケージライブラリは、以下のリストに対応する必要があります。 これは、Rスタジオがアクセスしていることを示します。保存されたパッケージに 依存関係を歌う。)

ステップ8

プロジェクトパッケージのライブラリを利用するRのコードを、実行します。 上記の の手順を使用してパッケージライブラリをロードした後、 スクリプトごとにパッケージライブラリを再ロードする必要はありません。 Rスタジオは、Rスタジオセッション内で開いた各スクリプトのパッケージ依存関係 に引き続きアクセスします。 続いてR-studioを閉じてから アンバンドルディレクトリ内のスクリプトを開いた場合、保存されたパッケージ のスナップショットを再ロードする必要なく、R studioは依然として の依存関係にアクセスする必要があります。

関連する問題