r を起動するその前に
TRANSCRIPT
R を起動するその前に
kos59125
2012-08-03 NagoyaR#9
お知らせ
•説明の都合上,微妙な嘘が多分に含まれています
主な内容
•R の設定の話
• R 起動時の処理を変更するための設定を行えるようにする
• R の話ではなく,パソコンの話
•想定するレベル
• 多少の問題であれば自己解決できるレベル
話の流れ
•起動オプション
•環境変数
•設定ファイル
モチベーション
モチベーション
しつこい
モチベーション
•起動時のライセンス
• いらない
•終了時の保存確認
• いらない
• q("n") とすれば良いが面倒くさい
最初から表示させない設定にしたい
コマンドライン引数
•プログラム (ここでは R のこと) で最初に実行される関数 (いわゆる main 関数) に与えられる引数
• 例) R.exe "hello world" see you → R.exe, hello world, see, you の 4 引数
•実行中の R からは commandArgs 関数で確認できる
起動オプション
•プログラムの挙動を変える特別なコマンドライン引数
• 例) 多くの UNIX コマンドは –h か --help をコマンドライン引数に指定するとプログラムのヘルプを表示して終了する
R の代表的な起動オプション
•--quiet (-q)
• 起動時のメッセージを表示しない
•--no-save
• 終了時にセッションを保存しない (q() が q("n") と同じ意味になる)
•--help (-h)
• オプションの一覧を表示する
引数の指定 (Windows)
• ショートカットアイコンを右クリックしてプロパティを選択
• リンク先にコマンドライン引数を指定
• (余談) 作業フォルダーも変えておくと良い
引数の指定 (Mac OS X)
•GUI 版はコマンドライン引数を無視するので起動オプションを指定できない
• 参考) 普通の Mac アプリはターミナルから open -a App --args x y z のようにコマンドライン引数を指定できる
•コンソール版は普通にコマンドライン引数を指定できる
引数の指定 (Linux)
•一般的なコマンドと同様
環境変数
•OS がプロセスを超えて共有するデータ
•プログラムが環境変数を取得して利用する
• Windows だとレジストリを使う場合が多いが環境変数も使われる
•設定ファイルのパスの指定等に使う
環境変数
•Windows では %VARIABLE% のように変数名を % で挟んで参照
•Mac / Linux では ${VARIABLE} のように変数名を ${} で囲む ({} は多くの場合に省略可)
•R からは Sys.getenv("VARIABLE") の形で取得可能
R が使う主な環境変数 (1)
•R_USER
• ユーザーディレクトリ
• ユーザー設定ファイル等を配置するディレクトリ
•R_HOME
• R のインストールディレクトリを指定
• 外部プログラムから R を利用したり,複数のバージョンがあるときに使う
R が使う主な環境変数 (2)
•R_ENVIRON_USER
• 環境変数をまとめて指定するファイルを指定
•R_PROFILE_USER
• 起動時に実行するスクリプトを指定
R が使う主な環境変数 (3)
•R_LIBS_USER
• パッケージを保存するディレクトリを指定
• 指定しておけば権限なしでもパッケージがインストールできる
• R からは .libPaths 関数で確認可能
• システムで利用するライブラリーのディレクトリも表示される
環境変数の設定 (Windows)
• スタート → アイコンクリック → 環境変数の変更
• コントロールパネルからでも OK
環境変数の設定 (Windows)
• [新規] で新しい環境変数の定義
• [編集] で既存の環境変数を編集
• 1 つの変数に複数の値を定義したい場合はセミコロン (;) で区切る
• 例) foo;bar;baz
環境変数の設定 (Windows)
•後述の Renviron 内でファイルのパスを指定する場合は,フォルダ区切り文字を ¥ ではなく / にする必要がある
環境変数の設定 (Mac OS X)
•export コマンドで指定
• 例) 環境変数 FOO に値 BAR を割り当てる export FOO=BAR
•1 つの環境変数に複数の値を指定したい場合はコロン (:) で区切る
• 例) 既存の環境変数 PATH に新しい値 ~/bin を追加する export PATH=${PATH}:~/bin
環境変数の設定 (Mac OS X)
•ログインするたびに環境変数を設定しなおす必要がある
• ログイン時実行されるスクリプトファイル (~/.bash_profile) に指定しておく
環境変数の設定 (Linux)
•ログインシェルが bash なら Mac OS X と同じ
•他のシェルの場合は各々のシェルの流儀に従う
指定すると良い R の環境変数
•Windows
• R_ENVIRON_USER
• ホームディレクトリに設定ファイルを置かない
• Mac OS X / Linux
• 特に指定する必要はない
• 他のアプリケーションとの連携でトラブルがある場合は R_HOME を指定すると解決するかも
主な R の設定ファイル (共通)
•Renviron
• 環境変数を指定
•Rprofile
• 起動時に実行されるスクリプト
主な R の設定ファイル (Windows)
•Rdevga
• プロットに使用されるフォントの設定
•Rconsole
• R Console の設定ファイル
Renviron
•環境変数を指定するファイル
• ファイルの場所は R_ENVIRON_USER で指定される
• カレントディレクトリかホームディレクトリにある .Renviron がデフォルト
• R で利用するその他の環境変数 (R_USER 等) はこのファイルにまとめて指定すればよい
Renviron
Rprofile
•起動時に実行されるスクリプトを記述したファイル
• ファイルの場所は R_PROFILE_USER で指定される
• カレントディレクトリかホームディレクトリにある .Rprofile がデフォルト
• .First 関数と .Last 関数
• --no-init-file オプションで無視される
Rprofile
Rdevga (Windows)
•プロットに使用されるフォントの設定
• ファイルの場所は R_USER で指定されたフォルダ内 (ファイル名は固定)
• 先頭の 4 つを日本語が扱えるフォントを指定すれば OK
•R でフォントを指定することもできる
• 阪上先生のブログを参照のこと
Rdevga (Windows)
Rconsole (Windows)
•R Console の設定
• ファイルの場所は R_USER で指定されたフォルダ内 (ファイル名は固定)
• SDI/MDI
• フォント
• コンソールサイズ
Rconsole (Windows)
設定 (Windows)
•環境変数 R_ENVIRON_USER を作成
• %APPDATA%¥R¥Renviron が Windows 流だが,うまくいかないので以下のようにすると良い
• Windows Vista / 7
• %USERPROFILE%¥AppData¥Roaming¥R¥Renviron
• Windows XP
• %USERPROFILE%¥Application Data¥R¥Renviron
設定 (Windows)
•デフォルトの設定ファイル (場所は後述) を R_ENVIRON_USER に指定した場所にコピー
•Renviron ファイル内で R_USER / R_LIBS_USER / R_PROFILE_USER を指定
設定 (Mac OS X / Linux)
•デフォルトの設定ファイル (場所は後述) を ~/.Renviron にコピー (~ はホームディレクトリ)
•Renviron ファイル内で R_USER / R_LIBS_USER を指定
• デフォルトで ~/.Rprofile を読むので R_PROFILE_USER は指定しなくとも良い
デフォルトの設定ファイルの場所
•Windows
• (インストールフォルダ)¥etc¥Rcmd_environ
•Mac OS X
• /Library/Frameworks/R.framework/Resources/etc/x86_64/Renviron
•Linux
• /etc/R/Renviron
まとめ
•起動オプションで R の挙動を変えられる
•環境変数を指定すると R の実行環境が改善できる
参考文献
•help(Startup)
•「R の設定」
• 今回の話とほとんど同じです
•「美しいフォントを使いましょう ―神は細部に宿る... つまりは,Mac 買おうというおはなし―」