2012-04-24 17 views
44

Rでパッケージを自動的に読み込む方法を教えてください。私は、library('package name')を何度も使用する必要なしに、Rでセッションを開始したいと考えています。 ?Rprofileが長いため(特にRでパッケージを自動的に読み込む方法は?

... ?Rprofile参照し、潜在的に:私はあなたの.Rprofileファイルにlibrary(foo)を入れたりR_DEFAULT_PACKAGESを設定R.

+6

、それはそれでライブラリの呼び出しがあった場合、より多くの自己完結型になるのに対し、それはあなたの設定に依存してセッションで後続のすべてのコードになりますので、通常これは良いアイデアではありません。あなたのコードを他の人と共有しようとすると、追加の指示なしにスクリプトを実行できないため、あなたにはうれしくはありません。 –

+1

'.Rprofile' /' Rprofile.site'ファイルに 'load_extra_packages()'関数を定義して、あなたが望むすべてのパッケージをロードし(そしてそれらの名前を表示して)、セッションの始めにそのコマンドを実行することができます - 完全に自己完結型ではないにしても、あなたのコードは透過的になります。 –

答えて

63

開始私は次の時間を使用したいと思うすべてのパッケージをダウンロードしたと仮定あなたはおそらくは、デフォルトのすべてのパッケージをロードしたいですか、その後、余分加えたもの(というよりも、言うには、デフォルトのパッケージの一部をロードしないので

If you want a different set of packages than the default ones when you start, insert a call to ‘options’ in the ‘.Rprofile’ or ‘Rprofile.site’ file. For example, ‘options(defaultPackages = character())’ will attach no extra packages on startup (only the ‘base’ package) (or set ‘R_DEFAULT_PACKAGES=NULL’ as an environment variable before running R). Using ‘options(defaultPackages = "")’ or ‘R_DEFAULT_PACKAGES=""’ enforces the R system default.

)、あなたはEITことができます)威圧彼女

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を実行した後(?Rprofileと同じである)「R起動[http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html]に記載された他のアクションを実行」ことを示唆しています。 Rprofile.siteかどうかは曖昧です。

編集#2:下記のコメントに従って、最近のRstudioで動作します。

+2

'? 'Rprofile'が長くて威圧的であるため' +1 'のために+1します。それは、また、きわめてコンパクトで、完全なドキュメントです。間違いなく読むことをお勧めします。 –

+0

ありがとう@Ben Bolker 'Rprofile.site'ファイルに' library(foo) 'という行を追加しようとしましたが、私は自分が望むものが得られません。 'foo'はどういう意味ですか?それは何ですか?それは私がロードしたい決定されたパッケージの名前になっていますか? – Nestorghh

+3

申し訳ありません。 'foo'は昔ながらの"プレースホルダ "変数です。たとえば、 'library(" ggplot2 ");を試してみてください。ライブラリ( "emdbook");ライブラリ( "quantreg"); library( "rms") '(あなたがインクルードしたいかもしれない実際のパッケージの例として) –

15

あなたはあなたがする必要がどのようなR.

の新しいセッションを開始するたびに実行されるスクリプトに過ぎない.Rprofileというファイルがそれにlibrary(package)を追加であります。 Unixを使用している場合は、おそらくあなたのホームフォルダに隠しファイルとしてあります。

7

Quick-R page on customizing R startupは、ベンとジョアオの答えと基本的に同じ情報を含んでいますが、おそらく少しはっきりしています。あなたのホームフォルダ内の目的の変更(Windows上のドキュメント)でRprofile.siteファイルのコピーを作成し、それを呼び出す.Rprofile

編集:私は書類がもはやフォルダからR 3.0.0が見えていないことに気づいたが、ユーザのホームを使用していますこれはインストール上の問題かもしれません(つまり、私はRを間違ってインストールしたことがあります)。しかし、この回答にリンクされているQuick-Rのページは正しい方法を示しています。他の人がこの問題に遭遇した場合、解決策は.Rprofileをユーザーのホームディレクトリにコピーすることです。

0

誰もが提案したように、Rパッケージを.Rprofileファイルに入れてください。

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

Note that when the site and user profile files are sourced only the base package is loaded,

あなたには、いくつかのRベースの機能を上書き/増強をロードしたい場合は、このパッケージには、問題を引き起こす可能性があります。 tidyverseで例えば参照::フィルタを:https://github.com/tidyverse/dplyr/issues/1611

私がこれまでに2つのソリューションを見ることができます:

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

  2. defaultPackagesを更新します。library()を.Rprofileなどで使用しないでください。

    old <- getOption("defaultPackages") 
    options(defaultPackages = c(old, "tidyverse")) 
    
関連する問題