完全を期すために、この問題を回避する方法はいくつかあります。ダークが言ったように、パッケージをコンピューターの別のディレクトリに保存します。
install.packages("thepackage",lib="/path/to/directory/with/libraries")
.Library
関数を使用してデフォルト値を変更することもでき.libPaths
ます
.libPaths("/path/to/directory/with/libraries")
これにより、このパスが.Library
変数の最初の値として配置され、デフォルトになります。
これをさらに自動化する場合は、Rビルドの/ etc /ディレクトリにあるRprofile.siteファイルでこれを指定できます。その後、Rが読み込まれるたびに自動的に読み込まれます。これについて心配する必要はありません。指定したディレクトリからパッケージをインストールしてロードするだけです。
最後に、Rprofile.siteにいくつかの小さなコードを含めて、新しいRバージョンをインストールするときにすべてのパッケージを再インストールできるようにしています。新しいRバージョンに更新する前に、それらをリストアップする必要があります。私は、すべてのパッケージを含む更新されたリストを含む.RDataファイルを使用してそれを行います。
library(utils)
## Check necessary packages
load("G:\Setinfo\R\packagelist.RData") # includes a vector "pkgs"
installed <- pkgs %in% installed.packages()[, 'Package']
if (length(pkgs[!installed]) >=1){
install.packages(pkgs[!installed])
}
Rprofile.siteで指定.Last()
して、packagelist.RDataを作成します。これは私がいくつかをインストールした場合、パッケージリストを更新します:
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
新しいRバージョンをインストールすると、Rprofile.siteファイルに必要な要素を追加するだけで、すべてのパッケージが再インストールされます。とにかく、Rprofile.siteを調整する必要があります(合計コントラストを使用したり、Tinn-Rの追加コードを追加したりするなど)。すべてのパッケージを新しくインストールするのに余分な時間がかかるだけです。
この最後のビットは、元の質問で解決策として与えられたものと同等です。最初に「インストール済み」リストを取得することについて心配する必要はありません。
繰り返しますが、CRANからインストールされていないパッケージがある場合、これは問題なく機能しません。しかし、このコードはそれらのコードも含めるように簡単に拡張できます。