金魚亭日常

読書,ガジェット,競技プログラミング

R の .Renviron の ${R_HOME}

これの話

etc/Rcmd_environ をコピーして .Renviron を作る場合,

R_SHARE_DIR=${R_HOME}/share

と書かれているが,この ${R_HOME} は何になっているのか,という話.

Rを起動した後に Sys.getenv() して確かめてみると,

C:/R/R-3.3.2

といったRのインストーディレクトリになっているが,.Renviron を解釈する段階では,

C:\R\R-3.3.2

になっているらしくて,

R_SHARE_DIR=${R_HOME}/share

R_SHARE_DIR=C:RR-3.3.2/share

になってしまうらしい.

これが起こるのは,R.exe だけで,RStudioでは起こらない.

レジストリHKEY_LOCAL_MACHINE\SOFTWARE\R-core\R\3.3.2\InstallPath (32bitの場合)を / 区切りにするとこの問題は起こらないらしいので,R_HOMEの値はもともとこのレジストリの値から来ているらしい.

回避策としては,R_HOME の値を .Renviron/区切りで書けばよい.