5

社内パッケージ「MyPKG」を使って再現性のある解析のプロトコルを書いています。各ユーザーは、独自の入力ファイルを提供します。入力以外は、分析は同じ条件下で実行する必要があります。(たとえば、異なる結果が異なる入力ファイルによるものであると推測できるようにするため)。

MyPKG は開発中であるためlibrary(MyPKG)、ユーザーがローカル ライブラリでコンパイルした最後のバージョンをロードします。また、ローカル ライブラリで見つかった依存関係も読み込みます。

しかし、この分析には特定のバージョン (MyPKG_3.14) を使用して、より新しいバージョンの開発を許可したいと考えています。私の理解が正しければ、「R --vanilla」はすべての人に同じ依存関係をロードします。

完了したら、安定した再現可能な環境を維持するために、作業環境を VM として保存します。したがって、一時的な (6 か月) ソリューションで十分です。

考えられる解決策を 2 つ思いつきましたが、どちらでも十分かどうかはわかりません。

  1. サーバー管理者に MyPKG_3.14 をデフォルトの R パスにインストールするよう依頼し、プロトコルで次のコードを提供します。

    R --vanilla
    library(MyPKG)
    ....
    

    また

  2. MyPKG_3.14 を特定のライブラリでコンパイルします (例: lib.loc = "/home/share/lib/R/MyPKG_3.14")。

    R --vanilla
    library(MyPKG)
    

  • これらのアプローチは両方とも、全員が同じバージョンを実行していることを確認するのに十分ですか?
  • 一方が他方よりも好ましいですか?
  • 他に予期せぬ問題が発生する可能性はありますか?
  • 複数の分析を標準化するための推奨オプションはありますか?
  • の出力のテストを含める必要がありSessionInfo()ますか?
  • 全員が使用できるように、サーバー上に 1 つのアカウントを作成した方がよいでしょうか?
4

1 に答える 1

1

ポイントのカップル:

  • たとえば、R 用の Debian / Ubuntu バイナリ (CRAN ポートを含む) を使用しようとします/usr/local/lib/R/site-library(ディレクトリを所有するグループに追加されている場合、ユーザーもインストールできます)。そうすれば、誰もが同じバージョンを取得できます
  • システム全体の構成を使用します。たとえば$R_HOME/etc/、以下のドットファイルを優先します~/。同じ理由で、Debian / Ubuntu パッケージはソフトリンクを提供しています/etc/R/
  • R の機能を使用して、そのパッケージ (例: ) を照会し、installed.packages()パッケージとバージョンを報告します。
  • 可能な場合は、OS レベルの機能を使用して、OS のリリースとバージョンを照会します。ただし、これはあまり標準化されていません。

最後のポイントについては、家にある私の箱が言っています

> edd@max:~$ lsb_release -a | tail -4
> Distributor ID: Ubuntu
> Description:    Ubuntu 12.04.1 LTS
> Release:        12.04
> Codename:       precise
> edd@max:~$ 

これは始まりです。

于 2012-09-20T19:30:59.623 に答える