パッケージ(package)
Rの基本機能を拡張するために作成された,
関数,データ,コンパイルされたコード(実行形式)を集めたもの。
ライブラリ(library)
パッケージを集めた場所(図書館)のこと。
複数のライブラリを設置可能。
Rコンソール(Console)で「install.packages(“<パッケージ名>”)」を入力 なお,一度インストールしたパッケージはライブラリに保管され, 次回からは再度インストールする必要がない。
例)Rパッケージ「DT」をインストールする場合(DTはHTML形式の表を作成するパッケージ)
install.packages("DT")
Rコンソール(Console)で「remove.packages(“<パッケージ名>”)」を入力
例)Rパッケージ「DT」をアンインストールする場合
remove.packages("DT")
RStudioの右下のペイン(窓枠)で「Packages」のタブを選択し
「Install」ボタンを押す。
「Install Packages」のポップアップ画面の「Packages」テキストボックスに
インストールしたいパッケージ名を入力する。
表示されるパッケージの候補一覧から所望のものを選択し「Install」ボタンを押す。
チェックボックス「Install dependencies」にチェックが入っていること。 チェックがないと当該パッケージが依存する他のパッケージがインストールされない。
RStudioの右下のペイン(窓枠)で「Packages」のタブを選択し,
「User
Libaray」の一覧からアンインストールしたいパッケージを見つけ,右側の✖をクリックする。
Rコンソール(Console)で「library(<パッケージ名>)」を入力する。
なお,リテラル記号” “でパッケージ名を囲む必要はない。
例)ライブラリにある「DT」パッケージを利用(ロード)する方法
install.packages("DT") # 説明のために再度インストール
# パッケージDTをライブラリからロード
library(DT)
一度パッケージをロードすると,そのパッケージに含まれる関数やデータを利用できる。 利用したい関数やデータよりも前にロードしておく必要がある。
例)データフレーム「d」を作成し,「DT」パッケージの「datatable」関数を利用しHTMLの表を表示
# テスト用データフレーム
d <- data.frame(a = 1:2, b = 2:3, c = 3:4)
# パッケージ関数の利用
datatable(d)
「<パッケージ名>::<パッケージ関数>」とすれば,パッケージをロードせずに, つまり「library(<パッケージ名>)」の記述がなくても直接的にパッケージ関数を利用できる。 次のような用途で主に使用される。
例)「::」を使って直接的にパッケージ関数を利用
# 直接的に利用できることの説明のためにDTパッケージを一旦取り外す(アンロード)
detach("package:DT", unload = TRUE)
# パッケージ関数の直接利用
DT::datatable(d)
「if (!require(<パッケージ名>)) 」の一文を「install.packages(<パッケージ名>)」文の前に付ける。
require関数は,library関数と同じようにパッケージをロードするが, 返り値としてロードできたか否かの論理値(TRUE/FALSE )を返す。 if文の内容は,所望のパッケージをロードできなかった場合に,install.packges関数が実行される仕組みである。 一度インストールされると,二回目からはlibrary関数と同じようにパッケージのロードを行うだけである。 新バージョンのRを使う場合や他人にRプログラムソースファイルを渡す場合は, 予め使用するパッケージがライブラリにインストールされていない場合が多い, そのときにこの記述をプログラムの先頭に載せておくと大変親切である。
例)パッケージのインストールの有無を判断し,まだの場合はインストールするコマンド文(命令文)
if (!require(DT)) install.packages("DT")
よくあるトラブルとしては,パッケージ名の間違い,パッケージをロードする前にパッケージ関数を使用するなどである。
パッケージをロードするまえにパッケージ関数を利用すると次のようなメッセージ文のエラーとなる。
! could not find function "<関数名>"