67

Rにパッケージを自動的にロードする方法を教えてください。library('package name')つまり、何度も使用せずにRでセッションを開始したいのです。次にRを起動するときに使用したいすべてのパッケージをダウンロードしたとします。

4

4 に答える 4

80

ファイルを入れるか、設定library(foo)してください:参照....RprofileR_DEFAULT_PACKAGES?Rprofile

特に(?Rprofile長く、潜在的に威圧的であるため):

起動時にデフォルトのパッケージとは異なるパッケージのセットが必要な場合は、「。Rprofile」または「Rprofile.site」ファイルに「options」の呼び出しを挿入します。たとえば、「options(defaultPackages = character())」は、起動時に追加のパッケージをアタッチしません(「base」パッケージのみ)(または、Rを実行する前に環境変数として「R_DEFAULT_PACKAGES = NULL」を設定します)。'options(defaultPackages = "")'または'R_DEFAULT_PACKAGES = ""'を使用すると、Rシステムのデフォルトが適用されます。

おそらくすべてのデフォルトパッケージをロードしてから、追加のパッケージを追加する必要があるため(たとえば、デフォルトパッケージの一部をロードしないのではなく)、次のいずれかを実行できます。

library("mypackage1")
library("mypackage2")
[etc.]

または使用options(defaultPackages=...)

options(defaultPackages=c(getOption("defaultPackages"),
       "mypackage1","mypackage2", ... [etc.]))

で、必要なパッケージを標準のデフォルト.Rprofile追加します。

編集(コメントからコピー)これをRstudioで機能させる: http : //rstudio.org/docs/using/workspacesは、Rstudioが実行.Rprofileされ、「Rスタートアップで説明されている他のアクションを実行する[ http://stat.ethz .ch / R-manual / R-patched / library / base / html / Startup.html ] "(これはと同じ?Rprofileです)。見るかどうかは曖昧Rprofile.siteです。

編集#2:以下のコメントによると、Rstudioの最近のバージョンで動作します。

于 2012-04-24T15:13:30.200 に答える
17

Rの新しいセッションを開始するたびに実行されるスクリプトに他ならない.Rprofileというファイルがあります。

あなたがする必要があるのはそれに追加library(package)することです。Unixを使用している場合は、おそらくホームフォルダに隠しファイルとしてあります。

于 2012-04-24T15:15:15.643 に答える
10

Rスタートアップのカスタマイズに関するQuick-Rページには、基本的にBenやJoaoの回答と同じ情報が含まれていますが、おそらく少しわかりやすいでしょう。Rprofile.siteホームフォルダ(Windowsのドキュメント)に必要な変更を加えたファイルのコピーを作成し、それを呼び出します.Rprofile

編集: R 3.0.0はドキュメントフォルダからは見えなくなりましたが、Windows 7ではユーザーのホームディレクトリ(ユーザー名)を使用していることに気付きました。ただし、これはインストールの問題である可能性があります(つまり、Rを「間違って」インストールした可能性があります)。以前)。ただし、この回答にリンクされているQuick-Rページは、これを行う正しい方法を示しています。他の誰かがこの問題に遭遇した場合、解決策は.Rprofileユーザーのホームディレクトリにコピーすることです。

于 2013-02-05T13:07:27.800 に答える
6

.Rprofile簡単な答えは、誰もが示唆しているように、Rパッケージをファイルに入れる必要があるということです。

ただし、Rはこのファイルを読み取り、Rベースパッケージをロードすることに注意してください。?Startupから参照してください:

サイトとユーザープロファイルファイルがソースされている場合、基本パッケージのみがロードされることに注意してください。

これにより、ロードするパッケージが一部のRベース関数を拡張/上書きする場合に問題が発生する可能性があります。たとえば、tidyverse :: filterを参照してください:https ://github.com/tidyverse/dplyr/issues/1611

私はこれまでに2つの解決策を見ることができます:

  1. .First.sys()ファイルの最初の行で使用し.Rprofileます。これは通常、.Rprofileを読み取った後に実行されるコマンドであり、。にパッケージをロードしますgetOption("defaultPackages")

  2. オプションdefaultPackagesを更新します。.Rprofileでは使用しないlibrary()でください。

    old <- getOption("defaultPackages")
    options(defaultPackages = c(old, "tidyverse"))
    
于 2018-02-22T23:31:27.327 に答える