install.packages("tidyverse")
install.packages("sf")
install.packages("here")はじめに
何か新しいプロジェクトを始める際に、新しいパッケージをいちいちインストールして読み込むのは面倒ですよね。
そんな時に便利な pacman パッケージのご紹介です。
pacman とは
ざっくり言うと、パッケージのマネジメントツールです。このパッケージには p_ で始まる様々な関数が含まれています。
特に便利なのが p_load() で、パッケージのインストールと読み込みを両方してくれます。もちろんインストール済みのパッケージは、読み込むだけです。
さらに便利なのは、複数のパッケージをまとめて書けるということです。install.packages() は一度に複数のパッケージをインストールできるものの、library() はパッケージごとにしなくてはなりません。その点 pacman::p_load() は、括弧内にパッケージを並べて書くことで、複数のパッケージを一度にインストール、読み込みまでしてくれます(しかもダブルクォーテーションで囲まなくてよい!)。
使ってみる
早速使ってみます。今回は、tidyverse, sf, here の3つを使いたいとして、まだインストールもしていないとします。
library()
まず、インストールします。
次に、読み込みます。
library(tidyverse)── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.1 ✔ stringr 1.5.2
✔ ggplot2 4.0.0 ✔ tibble 3.3.0
✔ lubridate 1.9.4 ✔ tidyr 1.3.1
✔ purrr 1.1.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(sf)Linking to GEOS 3.13.1, GDAL 3.11.0, PROJ 9.6.0; sf_use_s2() is TRUE
library(here)here() starts at C:/Users/yo5uk/yo5uke.github.io
これで使えるようになりました。
p_load()
pacman::p_load() はこれで一発です。
pacman::p_load(tidyverse, sf, here)この場合、上に出てきたような読み込みに付随するメッセージは出てきません。
使うにあたって
pacman がパッケージである以上、はじめに install.packages("pacman") はしなければなりません。それ以降は install.packages() とはおさらばできます。
packman:: の書き方を使って、library(pacman)も省略しましょう1。
また、Docker を用いて環境構築する場合、Dockerfile にインストールすることを指示しておけば、それすら要らなくなります2。
Dockerfile に以下を追加します。
Dockerfile
RUN R -e "install.packages('pacman')"これでビルドすれば、RStudio でインストールせずとも pacman が使えます。
おまけ
パッケージを全部アップデートしたい、なんてこともありますよね。RStudio から一括でやる方法もありますが、せっかくなので pacman を使ってやってみましょう。
pacman::p_update()これでいけます。
まとめ
pacman パッケージをご紹介しました。
library() とどちらを使うかはお好み次第だと思います。
魅力を感じた方はぜひ使ってみてください!