Chapter 5 パッケージとは

5.1 パッケージについて

Rはデフォルト(初期状態)でインストールされている関数がたくさんある。

ベクトルの長さを測るlength()や、散布図を描くplot()などは関数であり、もともとRをインストールした時点で入っている。

しかし、さらにRを拡張して機能を強化することができる。
それがパッケージのインストールである。

たとえばスマホにはもともと基本アプリが入っているが、さらにいろんなアプリをダウンロードしてインストールできることに似ている。 しかしパッケージは無料である。

5.2 パッケージのインストール

パッケージのインストールをする方法は二つある。

  1. install.packages()関数を使う方法
install.packages("ggplot2")
  1. Rstudioの右下の区画の[Packages]タブから、[Install]ボタンを押して、ダイアログに従ってインストール

5.3 よく使うパッケージのインストール

tidyverseと呼ばれるパッケージをインストールしてみよう。

install.packages("tidyverse")

実はこのtidyverseはパッケージであり、複数のパッケージがインストールされる。

5.3.1 Tidyverseについて

Tidyverseというパッケージ群はggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats, lubridateという複数のパッケージを含む

たとえばggplot2は図を描くためのパッケージであり、plot()関数などとかぶる。実際に、ggplot2ではplot()と同じような図を出力することができる。Tidyverseシリーズは、データをより直感的に扱うための哲学に基づいて開発されており、Rオリジナルの関数ではないが、多くの人が使うパッケージ群となっておりRを学ぶならばほぼ必須といえる状態になりつつある。

5.4 パッケージの使い方1

パッケージの使い方は2通りある。 パッケージに入っている関数を使うためには、パッケージを読み込む

## library()でパッケージの読み込み
library(tidyverse)

読み込んだ後は、パッケージに含まれている関数が普通に使える。

## read_csvはtidyverseに入っているreadrというパッケージに含まれる
data1 <- read_csv("data/data1.csv")

一般的には、コード(Rスクリプト)を書く際に、コードの冒頭でパッケージを読みこんで置くことが一般的である。

# コードの例

# ライブラリ
library(tidyverse)

# データの読み込み
data_634 <- read_csv("data/hogehoge.csv")

# データのサマリー
summary(data_634)

5.5 パッケージの使い方2

読み込んでいないパッケージの関数を使おうとするとエラーが出る。

## read_csvはtidyverseに入っているreadrというパッケージに含まれる
data1 <- read_csv("data/data1.csv")
## Error in read_csv("data/data1.csv"): could not find function "read_csv"

パッケージ名と関数名を::で繋ぐと、読み込んでいなくても使える。

data1 <- readr::read_csv("data/data1.csv")

これが2つ目のパッケージの使い方である。 そのスクリプトであまり使わないが一回だけ使いたいケースや、一般的でないパッケージや関数なので何のパッケージに入っている関数なのかを明示したい際に使う。

5.6 発展:pacmanパッケージによる効率的な管理

5.6.1 pacmanパッケージとは

install.packages()library() を毎回使い分けるのは少し手間がかかる。pacmanパッケージはこの二つをまとめたp_load()という便利な関数を提供している。

p_load()の特徴は以下の通りである。

  • インストール済みのパッケージ → そのまま読み込む(library()と同じ)
  • 未インストールのパッケージ → 自動でインストールしてから読み込む

5.6.2 インストール

pacman自体は通常通りインストールする。

install.packages("pacman")

5.6.3 使い方

pacman::p_load(tidyverse, fixest, skimr)

複数のパッケージをカンマ区切りで一度に指定できる。それぞれについて「インストールされていなければインストール → 読み込む」を自動で行う。

pacman自体はpacman::p_load()の形式で呼び出すため、library(pacman)は不要である。

5.6.4 どんなときに使うか

授業で使うRスクリプトはこの方法で書いていく。他の人とスクリプトを共有する際に、相手の環境にパッケージがインストールされているかどうかを気にせずに済むため便利である。

5.7 パッケージの注意点

パッケージは一旦インストールすると、Rには入っているが、使う際にはlibraryで読み込むか、2の方法で呼び出す必要がある。

Rのバージョンを更新(新しいRをインストール)すると、過去にダウンロードしたパッケージをインストールし直す必要があるので、もしRを更新した場合は注意しよう。