253

管理者としてではなく、WindowsでRを実行しています。パッケージをインストールすると、次のコマンドが機能しません。

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

パッケージをインストールするには、ライブラリの場所を指定する必要があります。

install.packages("zoo", lib="C:/software/Rpackages")

パッケージをロードするには、ライブラリの場所も指定する必要があります。

library("zoo", lib.loc="C:/software/Rpackages")

これはすべて問題ありませんが、ライブラリパスに何らかの方法で追加できるかどうかを確認したかったC:/software/Rpackagesので、毎回入力する必要はありません。

オンラインで検索したところ、これを行う1つの方法は、Rprofile.siteファイルを編集して行を追加することであることがわかりました。

.libPaths("C:/software/Rpackages")

ただし、これを実行してRStudioを起動すると、これが出力されます。

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

.libPathsに追加したコマンドは効果Rprofile.siteがなかったようです。なぜそうなのですか?または、さらに重要なことに、ライブラリの場所を入力せずにパッケージをインストールおよびロードできるように、問題を修正するにはどうすればよいですか?

注:RStudioを起動すると、.libPaths()コマンドは想定どおりに機能するようです。

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"

変じゃない?

4

15 に答える 15

266

R_LIBS_USER適切な解決策は、RStudioにRprofile.siteファイルを認識させるのではなく、環境変数を目的のライブラリフォルダーへのファイルパスの値に設定することです。

Windowsで環境変数を設定R_LIBS_USERするには、コントロールパネル([システムのプロパティ]->[高度なシステムプロパティ]->[環境変数]->[ユーザー変数])に移動して、目的の値(ライブラリフォルダーへのパス)を設定します。

Variable name: R_LIBS_USER 
Variable value: C:/software/Rpackages  

何らかの理由でコントロールパネルにアクセスできない場合は、rundll32 sysdm.cpl,EditEnvironmentVariablesWindowsのコマンドラインから実行して、そこから環境変数を追加してみてください。

R_LIBS_USERを設定すると、RStudioを直接起動するか、ファイルを右クリックして[プログラムから開く]をクリックしてRStudioを起動するかに関係なく、ライブラリが.libPaths()に最初に表示されます。

RProfileソリューションは、RStudioショートカットをクリックしてRStudioを常に起動する場合に機能します。この場合、デフォルトの作業ディレクトリをRprofileを格納するディレクトリに設定するだけで十分です。ファイルをクリックしてRStudioを起動すると、作業ディレクトリがデフォルトの作業ディレクトリから変更されるため、Rprofileソリューションは機能しません。

于 2013-10-29T15:43:23.120 に答える
201

私は通常、すべてのパッケージを1つのライブラリに保持しようとしますが、ライブラリを追加する場合は、既存のライブラリパスに新しいライブラリ(ファイルシステムにすでに存在している必要があります)を追加しませんか?

.libPaths( c( .libPaths(), "~/userLibrary") )
 # obviously this would need to be a valid file directory in your OS
 # min just happened to be on a Mac that day

または(これにより、userLibraryが新しいパッケージを配置する最初の場所になります):

.libPaths( c( "~/userLibrary" , .libPaths() ) )

それから私は(少なくとも私がこれを最初に書いたときに戻って)得ます:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/user_name/userLibrary"  

この.libPaths関数は、他のほとんどの非グラフィック関数とは少し異なります。それは副作用を介して機能します。R環境変数を報告および変更する関数Sys.getenvSys.setenvその機能は分割されていますが.libPaths、そのターゲットを報告または変更することができます。

Rの起動プロセスに関する情報は、?Startupヘルプページで読むことができます。RStudioの資料は次の場所にあります。https ://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio

あなたの場合、RStudioはRprofile.site設定を尊重していないか、RStudioのデフォルトの1つから.Rprofile設定を読み取ることによってそれらをオーバーライドしているようです。この操作の結果には、とへの呼び出しの内容も追加されることにも注意してください.Library.Library.siteこれが、RStudio(またはインストールされている他のIDEまたはネットワーク)でホストされるRが異なる動作を示す可能性がある理由です。

Rプロセスの現在のシステム環境を返すためSys.getenv()、次のコマンドでライブラリとその他のパスを確認できます。

Sys.getenv()[ grep("LIB|PATH", names(Sys.getenv())) ]

パッケージの保存とアクセスに重要な2つは次のとおりです(Linuxボックスでは異なります)。

R_LIBS_SITE                          /usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library
R_LIBS_USER                          /home/david/R/x86_64-pc-linux-gnu-library/3.5.1/
 
于 2013-03-02T04:39:33.220 に答える
27

.Rprofileデフォルトの作業ディレクトリにあるファイルにコードを配置することで、問題を解決することができました。

まず、デフォルトの作業ディレクトリの場所を見つけました

> getwd()
[1] "C:/Users/me/Documents"

次に、テキストエディタを使用.Rprofileして、次の行を含む単純なファイルを作成しました。

.libPaths("C:/software/Rpackages")

最後に、起動Rして実行する.libPaths()と、目的の出力が得られます。

> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
于 2013-03-04T06:33:38.910 に答える
22

https://superuser.com/questions/749283/change-rstudio-library-path-at-home-directory

〜/.Renvironを編集

R_LIBS_USER=/some/path
于 2017-12-14T05:45:00.387 に答える
11

RまたはRstudioのどちらを使用しているかを永続的に認識し(セッションごとに定義する必要はありません)、Rstudioがそれを私のMacマシンのデフォルト。SOでこれが明示的にレイアウトされているのを見たことがなかったので、Windows、次にMacで提供された手順を要約しました。

Windows 7 OSの場合:

  1. 個人用ライブラリを配置するドライブにディレクトリを作成します。たとえば、C:\ User \ Rlibs(またはアクセス許可のある別のライブラリ)を作成します。

  2. コントロールパネルの設定を編集するには、Windows検索バーで[アカウントの環境変数の編集]を検索/移動します

  3. 「環境変数」ウィンドウの中央にある「新規...」をクリックします

  4. [新しいユーザー変数]ウィンドウで、[変数名]にR_LIBSと入力し、作成したパーソナルライブラリディレクトリ(C:\ User \ Rlibsなど)へのパスを入力します。

  5. [OK]をクリックすると、[ユーザー変数]ウィンドウに変数と値のペアが表示されます。

  6. もう一度[OK]をクリックします

これで、R(またはRstudio)を起動してコマンド.libPaths()を入力すると、作成したパーソナルライブラリとRシステムライブラリが表示されます。

Mac用:

  1. 「ホーム」または「ユーザー名」ディレクトリに、Rlibsというフォルダを作成します

  2. ターミナルアプリケーションを起動します

  3. タイプ:echo "R_LIBS=~/Rlibs"> .Renvrion大文字と小文字が一致することを確認します。

  4. ls -aと入力して、ディレクトリ内のファイルの完全なリストを表示します。これには、.Renvrionが含まれているはずです

  5. .Renvironファイルが正しく設定されていることを確認します。more .Renviron

R / Rstudioを起動して入力.libPaths()すると、パーソナルライブラリへの新しいパスが表示されます。

于 2017-05-04T14:01:38.150 に答える
8

管理者権限がない場合は、 \ R-3.1.0 \ etcRprofile.siteにある-f​​ileを開いて、次を追加することも役立ちます。

.First <- function(){
  .libPaths("your path here")
}

これは、開始時に.libPath()コマンドを直接評価します

于 2014-04-14T13:46:01.067 に答える
5

Ubuntuでは、ユーザーのデフォルトのライブラリパスを変更するための推奨される方法は、ファイルにR_LIBS_USER変数を設定することです。~/.Renviron

touch ~/.Renviron
echo "R_LIBS_USER=/custom/path/in/absolute/form" >> ~/.Renviron
于 2019-11-29T13:32:49.020 に答える
4

私はこれを理解するのに本当に苦労しました。gorkyplは、OSとRstudioを最後に再インストールしたときに上記の正しい解決策を提供しましたが、今回は、環境変数の設定が解決されませんでした。

RとRstudioの両方をアンインストールし、ディレクトリC:\ RとC:\ Rstudioを作成してから、両方を再インストールしました。

R_LIBS_USERユーザー変数を希望のディレクトリに定義し(gorkyplの回答に従って)、ユーザー変数をロードするためにマシンを再起動します。Rstudioを開くと、エラーがなくなるはずです。

R_LIBS_USERを代替ライブラリのパスに変更するために使用することもできSys.setenv()ます。これは、コンピュータを再起動する必要がなく、より簡単です。

R_LIBS_USERが何に設定されているかを確認するには: ?Sys.getenv()

読書help(Startup)は便利です。

于 2015-01-07T16:40:28.610 に答える
4

管理者権限のないディレクトリにあるRライブラリのデフォルトフォルダを変更するだけです。

.libPaths("C:/R/libs")
于 2018-11-14T11:12:11.720 に答える
2

新しいバージョンのRをインストールした後、またはその他の方法でデフォルトのパッケージライブラリが変更された場合は、以下のコマンドを使用して、両方のライブラリを追加してすべてのパッケージを使用できます。既存のライブラリパスを取得します。

.libPaths()

ここで、既存のパスと古いパスを設定します。

.libPaths(c(.libPaths(), "~/yourOldPath"))

それが役に立てば幸い。

于 2016-03-14T07:07:37.007 に答える
1

READMEを読みました。その中で、コマンドラインで.libPaths()を使用して、そこにあるパスを確認します。以前は2つのライブラリパスがありました。コマンド.libpath( "C:/ Program Files / R / R-3.2.4revised / library")を必要な場所で使用すると、ライブラリパスが変更されました。コマンドラインで.libPaths()をもう一度入力すると、正しいパスが表示されました。お役に立てれば

于 2016-07-08T04:11:22.270 に答える
0
getwd()
# [1] "C:/Users/..../software/My R studio"

上記のリンクを二重引用符でコピーします

.libPaths(new="C:/Users/..../software/My R studio")

パッケージをインストールするためのデフォルトのパスが変更されます

于 2016-02-07T13:48:06.943 に答える
0

ライブラリパスを永続的に変更したい場合(Rを入力するたびに.libPath()を呼び出さずに)、これは私にとってはうまくいきます:

  1. ホームディレクトリの下に.Rprofileを作成します。(〜/ .Rprofile)

  2. .libPaths(c( .libPaths(), "your new path" )) .Rprofileファイルを入力 し、保存します。

  3. R(任意のディレクトリ)を開いて確認します。入力するだけ.libPaths()で、libarayパスが更新されていることがわかります。

于 2019-07-03T19:12:29.633 に答える
0

ここでの回答のほとんどはWindowsとMacOSに関連しているので(そして私もこれに苦労したことを考慮して)、ArchLinuxセットアップでこの問題を解決するのに役立つプロセスを投稿することにしました。

ステップ1:

  • システムのグローバル検索(例:ANGRYSearch)を実行して、用語Renviron(ユーザーライブラリの設定が設定されている構成ファイル)を探します。
  • 次のディレクトリパスで2つの結果のみが返されるはずです。
    1. /etc/R/
    2. /usr/lib/R/etc/
      注: 1と2( 上記Renviron)に保存されている構成ファイルは相互にホットリンクされています(つまり、編集中のファイルが保存済み-[sudo編集後にファイルを保存するための権限も必要です]) 。

ステップ2:

  • 1番目のディレクトリパス()に移動し、お気に入りのテキストエディタでファイルを/etc/R/開きます。Renviron
  • ファイル内でタグをRenviron検索しR_LIBS_USER、中括弧セクションのテキストを目的のディレクトリパスに更新します。

    例:
    ..​​.変更元(元のエントリ):
    R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/4.0'}
    ...変更先目的のエントリ):
    R_LIBS_USER=${R_LIBS_USER-'~/Apps/R/rUserLibs'}

ステップ3:

  • 編集したファイルを保存しRenvironます...完了!!
于 2020-09-25T11:15:51.323 に答える
-2

Rがデフォルトの場所にインストールする際に問題が発生し、代わりにパッケージをtempフォルダーに配置するだけだったため、これを調べていました。これは、明らかにRに問題があるMcaffee Endpoint Securityの最新のアップデートであることが判明しました。パッケージのインストール中に脅威保護を無効にすると、正常に動作します。

于 2017-09-18T23:15:47.683 に答える