この授業が始まる2023年10月3日時点では、R 4.3.1 (2023年6月16日公開)が最新バージョンである。 しかし、情報演習室のコンピュータにインストールされているのは R 4.2.2 で、2023年度中は更新されないので、この授業では R 4.2.2 を利用する。R.4.1.0 以降のバージョンなら大きな問題は生じないと思われる。自分のパソコンに R 4.2.2 をインストールしたい場合は、以下のリンク先で手に入れることができる。
昨年度の計量経済学の授業終了後に、RStudio のバージョン 2023.09 が公開されたので、古いバージョンを使っているなら、2023.09 以降 に更新したほうがよい。自分が使っているバージョンは、RStudio メニューの “About RStudio” で確認することができる。この資料を作成している時点での最新版は、2022.09.0 である。最新版にするためには、RStudio Desktop をインストールし直せばよい。 情報演習室のコンピュータには、少し古いバージョン のRStudio がインストールされている。
新しい授業なので、RStudio で新しいプロジェクトを作っておこう。
名前の付け方はルール通りならなんでもいいが、たとえば
metrics_applied
などにしておけばよいだろう。
プロジェクトができたら、データ保存用の data
ディレクトリと、図を保存するための figs
ディレクトリを以下のコードで作る。
次回以降、さまざまなRパッケージを利用する。 各回で必要なパッケージはそれぞれの実習資料の冒頭に記すが、全体を通じて利用するパッケージをここで紹介する。必要に応じてインストールすること。情報演習室のコンピュータには、ほとんどのパッケージがインストール済みである。
まず、全体を通じて tidyverse を利用する。統計学2と計量経済学でも利用したので説明不要だ思うが、 tidyverseはggplot2、dplyr、tibble、readr などの便利なパッケージをまとめたパッケージ群である。 tidyverseを使うと、データの整形・変形を簡単に行えるようになり、コードの可読性を高めることができるというメリットがある。データの可視化には、tidyverse の一部である ggplot2 を使う。 このパッケージをインストール済みでない場合は、
でインストールする。
次に、パッケージの読み込みとインストールに利用する pacman パッケージをインストールする。
これまでの授業では、 install.packages()
でパッケージをインストールし、インストール済みのパッケージを
library()
で読み込むという、Rパッケージの標準的な使い方をしてきた。しかし、この方法を使う場合、
library()
で読み込むパッケージをあらかじめインストールしておかなければならない。Rで分析をする際には多数のパッケージを利用するので、インストール済みかどうか全部覚えておくのは難しい。この問題は、
pacman::p_load()
を使うことで(多くの場合)解決する。
pacman::p_load()
というのは、pacmanパッケージに含まれる
p_load()
関数という意味である。このように、
パッケージ名::関数名()
という書き方があったことを思い出してほしい。この表記を利用すると、異なるパッケージに含まれる同じ名前の関数を区別して使うことができる。
p_load()
の利点は2つある。第1に、インストール済みでないパッケージを指定すると、それをインスト-ルしてから読み込んでくれる。ただし、これが使えるのはCRANに登録されているパッケージだけである。CRANに登録されていないパッケージのインストール法は後ほど説明する。第2に、複数パッケージの読み込みが一度に簡単にできる。
pacmanを使って、既にインストール済みの tidyverse と、まだインストールしていないかもしれないpatchwork、estimatr、remotes の計4つのパッケージを同時に読み込んでみよう。
これで4つのパッケージが使えるようになっているはずだ。tibble とggplot2 (どちらもtidyverseに含まれる)、patchwork が使えることを確認するために、以下のコードを実行してみよう。
set.seed(2021-03-21)
myd <- tibble(x1 = rnorm(100),
x2 = rnorm(100))
p1 <- ggplot(myd, aes(x = x1,
y = after_stat(density))) +
geom_histogram(binwidth = 0.25,
boundary = 0,
color = "black") +
xlim(-4, 4) +
ylim( 0, 0.5)
p2 <- ggplot(myd, aes(x = x2,
y = after_stat(density))) +
geom_histogram(binwidth = 0.25,
boundary = 0,
color = "black") +
xlim(-4, 4) +
ylim( 0, 0.5)
plot(p1 + p2)
このコードでは、tibbleで作ったデータフレーム (tibble) を使って gglot2で図を作り、作った2つの図を patchwork で並べて表示している。
pacman を使わずに複数のパッケージを一度にインストールし、それらを読み込むためには、次のようなコードを書く必要がある。
install.packages(c("patchwork", "estimatr", "remotes"))
sapply(c("tidyverse", "patchwork", "estimatr", "remotes"),
require, character.only = TRUE)
一見してわかるとおり、pacman を使ったほうが楽である。
ただし、CRAN
に登録されていないパッケージは手動でインストールする必要がある。GitHub
にアップロードされているパッケージは、devtools::install_github()
または remotes::install_github()
でインストールする。例として、宋財泫 (SONG Jaehyun) 氏がGitHub
で公開している BalanceR
パッケージ をインストールしてみよう。
インストールさえ済めば、pacman::p_load()
で読み込みができる。
これで BalanceR パッケージが使える。
このように、GitHub からパッケージをインストールする際には、パッケージ名だけでなく、そのパッケージを公開しているGitHubのアカウント名(この例では JaehyunSong)を併せて指定する必要がある。
最後に、ggplot2 の図で日本語を正しく表示するための下準備をしておこう。 Windows では、片桐智志氏が作成した fontregisterer を利用する。このパッケージについては本人の解説 が詳しい。 Windowsユーザは、このパッケージをインストールする。
あとは、使用するOSにかかわらず以下のコードブロックをpacman::p_load(tidyverse)
の後に実行すれば日本語が正しく表示される(はず)。もちろん、以下のうち自分のOSに関係がある部分だけを実行してもよい。Linux
の場合は IPAexGothic
フォントをあらかじめインストールしておく必要がある(他のフォントを使ってもよい)。
if (.Platform$OS.type == "windows") { # Windows
library(fontregisterer)
my_font <- "Yu Gothic"
} else if (capabilities("aqua")) { # macOS
my_font <- "HiraginoSans-W3"
} else { # Unix/Linux
my_font <- "IPAexGothic"
}
## ggplot2 用の設定
theme_set(theme_gray(base_size = 9,
base_family = my_font))
試しに、日本語を含む図を表示する。