35

Rのライブラリを完全に削除するにはどうすればよいですか?

.libPaths()
[1] "\\\\per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
[2] "C:/Program Files/R/R-2.15.2/library"                                            
[3] "C:/Program Files/RStudio/R/library"     

最初の項目は会社の「マイドキュメント」フォルダです。私の名前からのパスのアポストロフィは、R CMD INSTALL --buildオフラインでインストールされているパッケージの使用に関する問題は言うまでもなく、作成しているパッケージで使用するときにあらゆる種類の悲しみを引き起こします。ネットワークから。

代わりにデフォルトとして使用C:/Program Files/R/R-2.15.2/libraryしたいのですが、に依存する必要はありませんRprofile.site

私が試したこと

> .libPaths(.libPaths()[2:3])
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

これは機能しているようですが、Rセッションを再開してから、元の.libPaths()出力に戻るまでです...

Restarting R session...

> .libPaths()
[1] "\\\\per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
[2] "C:/Program Files/R/R-2.15.2/library"                                            
[3] "C:/Program Files/RStudio/R/library" 

.libPaths()多分使っていると思いましたR_LIBS_USER

> Sys.getenv("R_LIBS_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"

だから私はそれを使用して設定を解除しようとしましたSys.unsetenv("R_LIBS_USER")が、セッション間で持続しません。

追加情報

重要な場合は、関連する可能性のあるいくつかの環境変数を次に示します...

> Sys.getenv("R_HOME")
[1] "C:/PROGRA~1/R/R-215~1.2"
> Sys.getenv("R_HOME")
[1] "C:/PROGRA~1/R/R-215~1.2"
> Sys.getenv("R_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell"
> Sys.getenv("R_LIBS_USER")
[1] "//per-homedrive1.corp.riotinto.org/homedrive$/Tommy.O'Dell/R/win-library/2.15"
> Sys.getenv("R_LIBS_SITE")
[1] ""

私は試しましSys.unsetenv("R_LIBS_USER")たが、これもセッション間で固執しません

4

5 に答える 5

26

Windowsの環境変数R_LIBSを次のように設定するだけです

R_LIBS=C:/Program Files/R/R-2.15.2/library

Rを再起動します。

于 2013-03-05T07:42:49.537 に答える
20

これは質問への回答が少し遅れていますが、他の人にとっては役立つかもしれません。私は自分のパスを設定する(そして元のパスの1つを削除する)ように注文します:

  • 現在のライブラリパスをチェックするためにR.libPaths()内で使用されます;
  • 保持するパスを特定しました。私の場合、Rの元のライブラリは保持されていましたが、ドキュメントへのリンクは削除されていました。
  • またはを使用してR-ホームパスが見つかりました; R.home()Sys.getenv("R_HOME")
    • R-Home\R-3.2.2\etc\Rprofile.siteRカーネルが起動するたびに読み取られます。したがって、変更はRの実行ごとに永続的になります
  • Rprofile.site以下を追加して編集、

.libPaths(.libPaths()[2]) .libPaths("d:/tmp/R/win-library/3.2")

使い方?

  • 最初の行は1つを除くすべてのパス(元のリストから2番目)を削除し、2番目の行は追加のパスを追加します。最終的に2つのパスになります。
  • Windowsを使用しているにもかかわらず、Unixパス表記を使用していることに注意してください。Rは、オペレーティングシステムに関係なく、常にUnix表記を使用します
  • Rを再起動しました(を使用Ctr+Shift+F10

これは毎回機能します。

于 2015-11-14T20:46:28.190 に答える
7

この関数をで使用する.Rprofile

set_lib_paths <- function(lib_vec) {
  lib_vec <- normalizePath(lib_vec, mustWork = TRUE)
  shim_fun <- .libPaths
  shim_env <- new.env(parent = environment(shim_fun))
  shim_env$.Library <- character()
  shim_env$.Library.site <- character()
  environment(shim_fun) <- shim_env
  shim_fun(lib_vec)
}
set_lib_paths("~/code/library") # where "~/code/library" is your package directory

元のソース:https ://milesmcbain.xyz/hacking-r-library-paths/

于 2020-01-31T19:29:02.653 に答える
3

Sys.unsetenv("R_LIBS_USER")コマンドをWindowsフォルダー内の.Rprofileファイルに配置しました。"own documents"助けになるようです。私の問題は、アクティブディレクトリ環境にいるとR、VPN経由で接続すると、起動とパッケージの読み込みが非常に遅くなることでした。

于 2013-05-27T20:12:50.610 に答える
2

RProfileファイル(@ )でこれを実行する場合は、環境変数が設定されlibrary/base/R/ている行を検索できますR_LIBS_*(たとえばSys.setenv(R_LIBS_SITE=....)、および) 。ライブラリツリーを設定するSys.setenv(R_LIBS_USER=.....)コードを検索することもできます。したがって、必要に応じて、呼び出しの前に変数に.libPaths()コメントを付けたり、設定を解除したり、設定したりすることで、目標を達成できます。たとえば、次のようなものです。R_LIBS.libPaths()

Sys.unsetenv("R_LIBS")
Sys.unsetenv("R_LIBS_USER")
Sys.setenv(R_LIBS_SITE = "D:/R/libs/site")
Sys.setenv(R_LIBS_USER = "D:/R/libs/user")
Sys.setenv(R_LIBS = "D:/R/libs")
于 2016-05-05T06:40:45.727 に答える