知に至る病

お勉強したことを忘れないように書き留めています。

R の環境設定

手順

特に凝ったことをしないのであれば,以下の手順にしたがって設定を行うだけで十分です。Windows 環境であれば,ちょっとした R のことで提供されている R User Configuration を使用するとボタン一発でほぼ同様の設定ができます。

  1. 環境変数 $HOME にホームディレクトリのパスを設定する。
  2. ホームディレクトリに以下の設定ファイルを配置する。
    • .Rprofile
    • Rconsole
    • Rdevga
  3. パッケージのインストール先を指定したい場合やパッケージを R のバージョンごとに分けたくない場合は,ホームディレクトリに .Renviron という名前の設定ファイルを作成し,その中で環境変数 $R_LIBS_USER にパッケージのインストール先のパスを設定する。

なお,Windows 環境ではホームディレクトリとして $R_USER の値が参照されるのですが,後述のとおり $R_USER が未設定の場合には $HOME の値で初期化されるので問題ありません。 ここでは,R 以外のプログラムとの連携や Mac OS XLinux といった他の環境との整合性を考えて $HOME の方を設定しています。

環境変数

ユーザー個別設定

ユーザーごとの設定に関わる環境変数としては以下のようなものがあります。 しかし,ホームディレクトリをあらわす $HOME さえ適切に設定してあれば,特にこれらの環境変数を意識する必要はありません。

環境変数 説明
R_USER Windows 環境のみ。ユーザー個別の設定ファイルを置く場所を指定する。特に指定しなかった場合は $HOME の値で初期化される。$HOME も未設定の場合はユーザーの個人フォルダ(マイドキュメント)が使用される。
R_LIBS_USER パッケージのインストール先を指定する。特に指定しなかった場合,Windows 環境では ${R_USER}/R/win-library/x.y で初期化される(x.y は R のバージョン番号 R x.y.z の数字)。
R_ENVIRON_USER R 起動時に環境変数の設定を行うファイル .Renviron のパスを指定する。
R_PROFILE_USER R 起動時に実行するコードを記述するファイル .Rprofile のパスを指定する。

バージョンごとのパッケージ管理

デフォルトではパッケージが R のバージョンごとに管理されます。 そのため,R 本体をバージョンアップするたびに,パッケージをインストールし直すか,フォルダごとコピーする必要があります。 これが面倒なようであれば,$R_LIBS_USER を設定するとよいでしょう。

なお,$R_LIBS_USER にパスを設定する際,以下の書式文字を使用することでバージョン番号などを展開することができます。

書式文字 意味 展開例
%V パッチレベルまで含めたバージョン番号 2.5.0
%v パッチレベルを含まないバージョン番号 2.5
%p プラットフォーム(R.version$platform の値) i386-pc-mingw32
%o システム(R.version$os の値) mingw32
%a CPU アーキテクチャ(R.version$arch の値) i386

サイト全体の設定

全ユーザー共通の設定に関わる環境変数としては以下のようなものがあります。 管理者としてマシンに固有の設定を施したりする場合に便利ですが,一般ユーザーとして R を使用している分にはまず必要ありません。

環境変数 説明
R_HOME R のインストール先。外部プログラムと連携させる場合や複数バージョンを共存させる場合に利用する。
R_LIBS パッケージのインストール先を指定する。ライブラリの検索時に $R_LIBS_USER よりも優先される。
R_ENVIRON R 起動時に環境変数の設定を行うファイル Renviron.site のパスを指定する。
R_PROFILE R 起動時に実行するコードを記述するファイル Rprofile.site のパスを指定する。

その他

一般的に使われているものを含めて,R の動作に影響する環境変数としては以下のようなものがあります。

環境変数 説明
HOME ユーザーのホームディレクトリを指定する。
LC_ALL ロケールを指定する。
LANGUAGE メッセージの翻訳に使用する言語を指定する。
TZ タイムゾーンを指定する。
R_HISTFILE コマンド履歴を記録するファイルのパスを指定する。未設定の場合は作業ディレクトリに .Rhistory というファイル名で保存される。
R_HISTSIZE コマンド履歴を最大何行分まで記録するか指定する。

設定ファイル

Renviron

R で使用される環境変数の設定を行うためのファイルです。 サイト全体の設定を行う Renviron.site とユーザー個別設定を行う .Renviron があります。

R 起動時には,まずサイトファイルが読み込まれ,次にユーザーファイルが読み込まれます。 それぞれ実際にどのファイルが読み込まれるかは以下の優先順位で決まります。

サイトファイルの優先順位

  1. $R_ENVIRON で指定されたファイル
  2. ${R_HOME}/etc/Renviron.site

ユーザーファイルの優先順位

  1. $R_ENVIRON_USER で指定されたファイル
  2. 作業ディレクトリの .Renviron
  3. ホームディレクトリの .Renviron

環境変数後から設定された値で上書きされます。 つまり,もともと環境変数に設定されていた値やコマンドラインパラメータで設定された値をサイトファイルでの設定が上書きし,サイトファイルで設定した内容をユーザーファイルでの設定が上書きします。

Rprofile

R 起動時に実行するコードを記述するファイルです。 すべてのユーザーに対してすべての状況で実行する Rprofile.site とユーザーや作業ディレクトリごとの .Rprofile があります。

R 起動時には,まずサイトファイルが読み込まれ,次にユーザーファイルが読み込まれます。 それぞれ実際にどのファイルが読み込まれるかは以下の優先順位で決まります。

サイトファイルの優先順位

  1. $R_PROFILE で指定されたファイル
  2. ${R_HOME}/etc/Rprofile.site

ユーザーファイルの優先順位

  1. $R_PROFILE_USER で指定されたファイル
  2. 作業ディレクトリの .Rprofile
  3. ホームディレクトリの .Rprofile

サイトファイルのコードは base パッケージに読み込まれます。 そのため,base パッケージ内のオブジェクトを上書きしてしまわないよう注意してコーディングする必要があります。 通常は local() 関数を使って一時的な作業環境を作成し,その中でコードが実行されるようにします。

ユーザーファイルのコードは作業スペースに読み込まれます。 作業ディレクトリに .Rprofile があるとホームディレクトリの .Rprofile は読み込まれないことに注意してください。 このことを利用すれば,プロジェクトごとに初期化コードを変えるといったことができます。

セッションの初期化と後始末

Rprofile では .First() と .Last() という特別な関数を定義することができます。 それぞれ R セッションの開始時と終了時に呼び出される関数です。

# セッションの初期化
.First <- function() {
    cat("\n --- Welcome! --- \n");
}

# セッションの後始末
.Last <- function() {
    cat("\n --- Good-bye! --- \n");
}

Rconsole(Windows 環境のみ)

R のコンソールに関する設定ファイルで,フォントや文字サイズなどの設定を記述します。 ファイル名は ${R_USER}/Rconsole で固定です。 当然,R Console を直接使用しない場合にはこのファイルがなくても問題ありません。

サイトファイルが $R_HOME/etc にありますので,これを $HOME にコピーして適当にカスタマイズします。 中身はテキストファイルなので,エディタで編集することが可能です。 もしくは,R を起動してメニューの[編集]→[GUI プリファレンス...]から設定して[Save...]すると Rconsole の書式でコンソール設定を書き出すことができます。 こちらの方が簡単かもしれません。

設定できる項目はたくさんありますが,基本的には好みで設定して構いません。 ただし,日本語が正しく表示されるように,フォントの設定を変更するのを忘れないようにしてください。 たとえば,以下のように MS Gothic を指定します。 TT は TrueType フォントの意味です。

font = TT MS Gothic

なお,R 実行中にファイルから設定を動的に読み込む関数として loadRconsole() が用意されています。

Rdevga(Windows 環境のみ)

グラフィックエンジンに関する設定ファイルで,plot() 関数で使用されるフォントを記述します。 ファイル名は ${R_USER}/Rdevga で固定です。

サイトファイルが $R_HOME/etc にありますので,これを $HOME にコピーして以下のように編集します。 中身はテキストファイルなのでエディタで編集できますが,改行コードが UNIX 形式(LF)ですので,メモ帳ではうまく表示できません。

編集内容

サイトファイルの最初の方にある以下の 4 行を探して,そのすぐ上にコピー&ペーストします。

TT Arial : plain
TT Arial : bold
TT Arial : italic
TT Arial : bold&italic

コピー&ペーストして新たに追加した 4 行の Arial と書いてある部分を MS Gothic など日本語表示が可能なフォントに書き換えます。 基本的には Rconsole の font で指定したものと同じフォントを指定すればよいでしょう。 日本語表示が可能なフォントの設定が,元からあった他のフォントの設定よりも前にくるよう注意してください。

TT MS Gothic : plain
TT MS Gothic : bold
TT MS Gothic : italic
TT MS Gothic : bold&italic

なお,Rdevga で設定するのは Windows で画面に描画する際のフォントなので,plot() の結果を PDF に出力する際のフォントに関しては別途設定する必要があります。 Rprofile で pdf.options(...) と記述している部分がそれです。