WindowsのRを更新するときにやること

とりあえず動いてるだけで満足していたので色々甘かったぽい.環境変数とかはインストールしたときにちゃんと設定しておくべき.

パッケージ周辺

ライブラリの保存先指定

library()でライブラリを読み込むとき,あるいはinstall.packages()でパッケージを(引数なしで)インストールするとき,デフォルトでは.libPath()で返ってくるフォルダを探す/へ保存する.libPath()の返り値は,特に環境変数とか設定してなければRのインストール先にあるlibraryフォルダだけになるけど,環境変数のR_LIBS,R_LIBS_USERに値が設定してあるとそっちがリストの頭に来る.R_LIBS_USERは,R_USERが設定されている場合,そこから/R/win-library/[バージョン番号]のフォルダで初期化される.
なのでもしバージョンごとにパッケージを分けて管理しておきたかったら,R_USERだけを設定しておく.そうすると設定したフォルダの下に適当にフォルダが作成されていく.
でもそれだとRを更新したときにパッケージをインストールしなおすか手動で移動させる必要があって面倒.環境変数のR_LIBS(またはR_LIBS_USER)を設定してしまうと便利.

  • 環境変数へ変数R_LIBSを追加,値として適当なフォルダ(e.g. C:\R\library)を設定

ちなみにXPではすぐに認識したけど,Vistaだと再起動しないと.libPath()した値が変わってなかった.

パッケージのアップデート

ライブラリの保存場所をまとめてある場合,旧バージョンで使えなくなるやつもあるかもしれないので,旧バージョンを使う可能性のある人は注意.

update.packages(ask='graphics')

とするとアップデートできる.ask='graphics'はどれをアップデートするか選択したいなら必要.そうでなければ単にupdate.packages()でok.
ちなみにVistaだと管理者権限がないと途中でエラーが出るのでRを管理者権限で起動してアップデートなりインストールなりをした方がいい.ただエラー出てもhtmlが保存できなかったとかその程度なので動くには動く.

ESS周辺

今までわざわざPATHをいじってたけどその必要はないということが分かった..emacsに以下の記述を追加.

;; ESS用 Rを更新したら書き直す.
(setq-default inferior-R-program-name "C:/Program Files/R/R-2.9.1/bin/Rterm.exe")

後半は使いたいバージョンのRterm.exeへのフルパス.バージョンアップしたら書き変えればok.
ちなみにこの辺いじればいいということはid:syou6162に教えてもらいました.どうもありがとうございました.

まとめ

環境変数が設定してあれば

  • パッケージのアップデート
  • .emacsの修正

これだけでok.