R でパッケージをロードする方法は library
関数と require
関数があります。通常のパッケージをロードするという目的において,スクリプト内で使うなら require
の方が良いでしょう。理由は 2 つあって, 1 つは既にパッケージがロードされている場合は再ロードを行わないということ,もう 1 つは require
がパッケージが利用可能になったかという logical 値を返すことです[A]。
前者に関しては単純に速度の問題ですが[B],後者に関しては次のようなことができます。
if (!require(foo)) { install.packages("foo") # もう一度パッケージのロードをしてみるけどまたダメならあきらめよう stopifnot(require(foo)) }
つまり,パッケージがロードされていない場合はパッケージがインストールされていないという仮定をして,パッケージのインストールとロードを行う,といった処理ができます。
更新履歴
- パッケージの再ロードのくだりを削除[C]。
脚注
library
もlogical.return
にTRUE
を指定すれば logical 値が返ってきます。 [↩]- ソースコードが何百もあってそれぞれでライブラリーを呼び出されているようなことがない限り気にする程の差はありませんが。 [↩]
- hoxo_m さんに指摘されました。ありがとうございます [↩]