[解決済み] Rの新バージョンをインストールするのに苦労しない方法?
質問
Andrew Gelmanは最近、Rのアップグレードが簡単でないことを嘆いていました。 (おそらく、LinuxよりもWindowsの方がより適切でしょう)。 ソフトウェアのインストールから、すべての設定やパッケージのコピーまで、アップグレードを行うための良いトリックをお持ちの方はいらっしゃいますか?
この提案はコメントに含まれていたもので、私が最近使っているものです。 まず、新しいバージョンをインストールし、次に古いバージョンでこれを実行します。
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
続いて新バージョンではこのようになります。
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
解決方法は?
念のため、この問題が発生しないようにするための方法がいくつかあります。Dirk が言ったように、パッケージをコンピュータの別のディレクトリに保存してください。
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])
}
を指定して、packagelist.RDataを作成しています。
.Last()
をRprofile.siteに追加しました。これは、私がいくつかの.NET Frameworkをインストールした場合、パッケージリストを更新します。
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
新しいRのバージョンをインストールするときは、Rprofile.siteファイルに必要な要素を追加するだけで、すべてのパッケージが再インストールされるんだ。私はどのみちRprofile.siteを調整しなければならないので(sum contrastsの使用、Tinn-R用の追加コードの追加など)、実際には余分な作業ではありません。ただ、すべてのパッケージを新たにインストールするのに余計な時間がかかるだけです。
この最後の部分は、元の質問で解決策としてあげられているものと同等です。ただ、最初に"installed"のリストを取得することを心配する必要はありません。
繰り返しますが、CRANからインストールされていないパッケージがある場合、これは完璧に機能しません。しかし、このコードはそれらのパッケージを含めるために簡単に拡張することができます。
関連
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
R言語 - マトリックス
-
Rによる系統的クラスタリング(階層)分析のグラフ形式の完全版
-
[解決済み] R:自然対数を使った方程式をnlsで使う
-
[解決済み] Node.jsを最新バージョンにアップグレードする
-
[解決済み] Mac OSでNode.jsを最新バージョンにアップグレードする。
-
[解決済み] pipを強制的に現在のバージョンに再インストールすることはできますか?
-
[解決済み] 統計的最頻値の求め方は?
-
[解決済み] 不足しているパッケージをチェックし、インストールするためのエレガントな方法?
-
[解決済み] R および RStudio のコンソールをクリアする関数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
Rでエラー:単項演算子への引数が無効
-
[解決済み] "エラーです。Rでテーマの書式を保存する際に「Don't know how to add RHS to the theme object」(テーマオブジェクトにRHSを追加する方法がわかりません)と表示されます。
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] Rの代入演算子"="と"<-"の違いは何ですか?
-
[解決済み] コマンドラインからRスクリプトを実行する
-
[解決済み] ベクトル中のxの値を持つ要素の個数を数える
-
[解決済み】RStudioを使用したRのアップデート
-
[解決済み] データフレームのカラムのデータ型を決定する
-
[解決済み] 2つの単語の最初の文字を大文字にします。