9

コマンドラインからRを実行すると:

> library(ggplot2)
...
> path.package('ggplot2')
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2"
> .libPaths()
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13"
[2] "/usr/local/lib/R/site-library"                
[3] "/usr/lib/R/site-library"                      
[4] "/usr/lib/R/library"                           
> Sys.getenv('R_LIBS_USER')
[1] "~/R/x86_64-pc-linux-gnu-library/2.13"

(注:シェルからチェックするとき、環境変数は実際には存在しません。)

ただし、同じボックスで実行されているRStudio Serverから、同じユーザーとしてログインした後は、次のようになります。

> path.package('ggplot2')
[1] "/home/yang/R/library/ggplot2"
> .libPaths()
[1] "/home/yang/R/library"              "/usr/local/lib/R/site-library"    
[3] "/usr/lib/R/site-library"           "/usr/lib/R/library"               
[5] "/usr/lib/rstudio-server/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "/home/yang/R/library"

これらがデフォルトで異なる理由を説明できますか?これはRStudioのカスタマイズですか?(なぜ?)よろしくお願いします。

4

2 に答える 2

8

ソースからの直接の回答:

http://support.rstudio.org/help/discussions/questions/204-r-libpaths-difference-between-rstudio-and-command-line-r

やあ、

はい、カスタムの R_LIBS_USER 設定があります。これは、すべてのユーザーがライブラリ ディレクトリの名前を変更したり、パッケージを再構築したりする必要なく、サーバーを新しいバージョンの R に簡単にアップグレードできるようにすることを目的としています。そうすれば、管理者はユーザーの作業環境を壊すことを恐れずにアップグレードを行うことができます (これは、各ユーザーに必要な名前の変更/再構築を行うアップグレード スクリプトを作成することによっても達成できることに注意してください)。

これがすべての場合に必ずしも望ましいとは限らないことに完全に同意します。これを回避するためにできることは次のとおりです。

Rtudio サーバー R_LIBS_USER は、/etc/rstudio/rsession.conf の次の設定によって制御されます。

r-libs-user=~/R/library

この変数は、R_LIBS_USER と同じワイルドカードをサポートしているため ( http://stat.ethz.ch/R-manual/R-patched/library/base/html/libPaths.htmlで説明されているように)、これを次のように変更できます。 RStudio をコンソール R のように動作させる:

r-libs-user=~/R/%p-library/%v

(上記の出力に示されているディレクトリを再現するための正しい構文だと思いますが、必ず再確認してください)

これで問題が解決し、必要に応じて構成できることを願っています。他にご不明な点がある場合、または説明どおりに機能しない場合はお知らせください。

JJ

于 2011-08-24T08:01:34.293 に答える
7

簡単なグーグルで私はここに来ました:

http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths

したがって、RStudioは/etc/rstudio/rsession.confで設定された独自のライブラリを使用しているように見えます。なんで?知るか。

于 2011-08-20T14:51:38.280 に答える