2016-09-25 5 views
0

私はいくつかの古いRプロジェクトを使用していますが、これは現在推奨されていない(または変更の多い)パッケージに依存しています。すべてがスムーズに動作するように、私は別のフォルダに保存したパッケージの古いバージョンを使用し、必要に応じてを手動で%userprofile%\documents\R\win-library\3.3にロードします。しかし、これは便利ではありません。特に、複数のプロジェクトを同時に実行したい場合、そのうちのいくつかはパッケージの新しいバージョンと更新されたバージョンが必要です。RStudio:それぞれの.Rprojに異なるパッケージバージョンを使用する

私の質問 - それぞれのライブラリのロード先である.Rprojのカスタムディレクトリを指定する方法はありますか?

+1

あなたは 'packrat'パッケージを見ましたか? –

答えて

3

あなたはこのずっと簡単に解決することができます:

  1. ...、各プロジェクトの最上位ディレクトリを持って、 projAを呼び出し、 projB
  2. これらのそれぞれの中に、ディレクトリlibs/を作成します。
  3. そして、これらの各ディレクトリ内に今、あなたは異なるプロジェクトディレクトリでRを起動すると、各パスの前別のライブラリディレクトリなるよう.libPaths("./libs")

として単一代入を持つファイル.Rprofileを持っていますプロジェクトごとに上書きすることができます。一言で言えば

、アプローチは、あなたが喜ばとしてローカルは約パッケージを変更しておくことができますここでは概要を説明します。 (あなたがそう選択した場合でも.libPaths()を介して共通のディレクトリを割り当てることができます。)

素敵な事が、これは任意のR呼び出し、バッチまたはGUIまたはRStudioまたは光沢のあるまたは...と

  1. 動作するということです
  2. は他のツールに依存しないため、
  3. はRStudioや.Rprofファイルに依存しませんが、RStudioも自由に使用できます。

しばしば、ベースRがあります。

2

1つの選択肢は、Revolution Analyticsによってcheckpointパッケージを使用することです。

プロジェクトのメインRファイルごとに、パッケージのセットをロードする日付を指定できます。あなたはそれについてもう少し詳しく読むことができますhere

enter image description here

ミラー使用getValidSnapshots(mranRootUrl = mranUrl())から与えられた日からスナップショットパッケージを引き出します。チェックポイントを作成するには

# Create temporary project and set working directory 

example_project <- paste0("~/checkpoint_example_project_", Sys.Date()) 

dir.create(example_project, recursive = TRUE) 
oldwd <- setwd(example_project) 


# Write dummy code file to project 

cat("library(MASS)", "library(foreach)", 
    sep="\n", 
    file="checkpoint_example_code.R") 

# Create a checkpoint by specifying a snapshot date 

library(checkpoint) 
checkpoint("2014-09-17") 

# Check that CRAN mirror is set to MRAN snapshot 
getOption("repos") 

# Check that library path is set to ~/.checkpoint 
.libPaths() 

# Check which packages are installed in checkpoint library 
installed.packages() 

# cleanup 
unlink(example_project, recursive = TRUE) 
setwd(oldwd) 
+3

これは便利ですが、OPが最新のパッケージと古くなったパッケージを混ぜて使用したい場合には問題になるかもしれません... –

関連する問題