R関連(1) requireとlibraryの違い -パッケージのインポート
いろんなRの参考書を読んでいて疑問に思っていたのが、パッケージをインポートする際に、人によって「require」と「library」の異なる関数を利用していることです。
stackoverflowに同じ疑問点を質問している人がいたので紹介します。
結論から言って、「どっちもあんまり変わらない」そうです。
「require」は指定したパッケージが存在しない場合、警告文が出るが処理自体は止まらない。一方で、「library」は指定したパッケージが存在しない場合、エラーが起こり処理自体が止まるということでしょうか。
また、「require」を利用した場合、パッケージが存在しないと「logical」値を返すことから、以下のようにパッケージがない場合に自動的にパッケージをインストールしてくれるようにスクリプトを書くことができます。
※stackoverflowに書いてあったスクリプトをそのまま転載しています。
このスクリプトを実行すると、パッケージが存在する場合「True」を返し、パッケージがインポートされます。
一方、パッケージが存在しない場合「False」を返し、パッケージのインストールを試み、再度パッケージのインポートを試みます。それでもインポートできない(パッケージがCRANに存在しない)場合、エラーを知らせる文章を出力します。
人によっては「require」を好むようですね。