R関連(1) requireとlibraryの違い -パッケージのインポート

いろんなRの参考書を読んでいて疑問に思っていたのが、パッケージをインポートする際に、人によって「require」と「library」の異なる関数を利用していることです。

 

stackoverflowに同じ疑問点を質問している人がいたので紹介します。


結論から言って、「どっちもあんまり変わらない」そうです。

 

「require」は指定したパッケージが存在しない場合、警告文が出るが処理自体は止まらない。一方で、「library」は指定したパッケージが存在しない場合、エラーが起こり処理自体が止まるということでしょうか。

 

また、「require」を利用した場合、パッケージが存在しないと「logical」値を返すことから、以下のようにパッケージがない場合に自動的にパッケージをインストールしてくれるようにスクリプトを書くことができます。

※stackoverflowに書いてあったスクリプトをそのまま転載しています。

 

このスクリプトを実行すると、パッケージが存在する場合「True」を返し、パッケージがインポートされます。

 

一方、パッケージが存在しない場合「False」を返し、パッケージのインストールを試み、再度パッケージのインポートを試みます。それでもインポートできない(パッケージがCRANに存在しない)場合、エラーを知らせる文章を出力します。

 

人によっては「require」を好むようですね。