hack のためのネタ帳, etc,,,

状況

Windows で RStudio を起動する際、Windows のスタートメニューから開くと、
> .libPaths()
[1] "C:/Users/kou/Documents/R/win-library/3.6" "C:/Program Files/R/R-3.6.1/library"      
Cygwin から開くと、
> .libPaths()
[1] "C:/Users/kou/HOME/R/win-library/3.6" "C:/Program Files/R/R-3.6.1/library" 
のように、ユーザー個別の libPath の場所が異なってしまう。

このため起動方法により、インストール済みのライブラリに差異が生じるという問題が発生した。

原因

どうも環境変数 HOME の有無による違いのようだ。
コマンドプロンプトから以下のようにすると、Cygwin から起動したのと同じ結果に
>set HOME=%USERPROFILE%\HOME
>"C:\Program Files\RStudio\bin\rstudio.exe"
Cygwin から以下のようにすると、スタートメニューから起動したのと同じ結果になった。
$ echo $HOME
$ rstudio

設定済みの環境変数には「Documents」や「ドキュメント」といった文字列は出て来ないのでし、RStudio ではなく Windows 版の GNU R を直接起動しても同じような状況なので、Documents は Windows 版の GNU R にハードコーディングされてそうな雰囲気?

因みに、Ubuntu の場合は、HOME の状況によらずシステムディレクトリ(/usr, /usr/local)の site-library を参照しており、ユーザー個別の libPath は設定されてない状況。
> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"           

Cygwin 版 GNU R はマルチバイトが上手く扱えないので、grep() とか必要な場合はそもそも使い物にならないんだけど、
基本的に Ubuntu と同様の状況。ただし /usr/local は見てないようだ。
> .libPaths()
[1] "/usr/lib/R/site-library" "/usr/lib/R/library"

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です