ライブラリのインストール
install.packages("tidyverse") # tidyverseというライブラリをインストールする
install.packages(c("tidyverse", "pacman")) # 複数のパッケージ名をベクターで与えることもできる
install.packages(tidyverse) # エラーが出る。ライブラリ名は文字列でないとダメ
.libPaths() # ライブラリのインストール先を表示
Rは統計のプログラミング言語であり、インストールしてすぐに統計の計算を行うことができるよう設計されています。例えば、代表的な統計処理である、平均値や標準偏差の計算、t検定や分散分析、グラフの作図等は、Rをインストールし、起動した次の瞬間から実行することができます。
しかし、この素の(nativeな)Rでは、近年開発された現代的な統計手法や、優れたデザインやインタラクティブ性を持つグラフの作成、複雑なデータの効率的な整理、Webページの作成など、現代のプログラミング言語に備わる機能のすべてを用いることはできません。
Rを含めた多くのプログラミング言語では、nativeな言語ではできない機能を後から追加することができます。この追加する機能のセットのことを、ライブラリと呼びます(パッケージと呼ぶこともあります)。
Rのライブラリは(基本的には)CRANで管理されており、審査が行われた上で登録されています。ライブラリはCRANのリポジトリ(データを格納する場所のこと)に保存されており、RのユーザーはこのCRANのリポジトリから、必要なライブラリをインストールして用いることになります。
ライブラリは、インストールしただけでは用いることができません。ライブラリを読み込み(ロード、load)、メモリ上に展開しておくことでライブラリの機能を用いることができるようになります。この読み込みはRを起動するたびに行います。ライブラリの機能は関連する関数群として実装されていますので、ロードすることでライブラリに登録されている関数を用いることができるようになります。
ライブラリをいちいち読み込むのは面倒ではありますが、必要ないライブラリを読み込んでしまうと、その分メモリを食うことになります。必要ないライブラリは読み込まないことで、メモリを節約し、プログラムの動作を軽くすることができます。他の言語にも同様の機能が備わっており、必要なライブラリのみを読み込んで用いるのが一般的です。
Rでは、デフォルトのワーキングディレクトリに.Rprofileというファイルを保存しておけば、この中身のプログラムをR起動時に実行してくれるという仕組みがあります。.Rprofileにいつも使うライブラリをロードするように、スクリプトを準備しておいてもよいかもしれません。
上記のように、ライブラリはまずインストールしないと用いることはできません。Rでライブラリをインストールする時には、install.packages
関数を用います。install.packages
関数の引数は文字列のライブラリ名です。ですので、ライブラリ名をダブルクオーテーションで囲う必要があります。ライブラリは自動的にダウンロードされ、.libPaths
関数で表示されるフォルダにインストールされます。
ライブラリのインストール
install.packages("tidyverse") # tidyverseというライブラリをインストールする
install.packages(c("tidyverse", "pacman")) # 複数のパッケージ名をベクターで与えることもできる
install.packages(tidyverse) # エラーが出る。ライブラリ名は文字列でないとダメ
.libPaths() # ライブラリのインストール先を表示
ライブラリをロードするときには、library
関数を用います。library
関数の引数は、文字列ではないライブラリ名です。文字列のライブラリ名でも読み込みはできますが、ダブルクオーテーションで囲う必要はありません。
同様にrequire
関数でもライブラリを読み込むことができます。require
関数では、ライブラリの読み込みに成功するとTRUE
が、失敗するとFALSE
が返り値として返ってくるという特徴があります。
library
関数を引数なしで実行すると、インストールされているライブラリの一覧が表示されます。
ライブラリをロードする
library(tidyverse) # tidyverseパッケージを読み込む
library("pacman") # pacmanパッケージを読み込む(文字列)
require(pacman) # requireによる読み込み(読み込みができたらTRUEが返ってくる)
library() # ライブラリの一覧を表示する
ライブラリに登録されている関数を用いるには、通常ロードする必要がありますが、ライブラリをロードしなくても個別の機能(関数)を用いることはできます。ライブラリをロードせずにそのライブラリの関数を用いるときには、「ライブラリ名::関数名」という形で関数を呼び出します。
ライブラリをロードせずに関数を用いる
# install.packages("lubridate") であらかじめライブラリのインストールが必要
ymd("2023-10-10") # lubridateパッケージの関数はライブラリをロードしないと使えない
## Error in ymd("2023-10-10"): could not find function "ymd"
::ymd("2023-10-10") # パッケージ名::関数名でロードしなくても関数が使える
lubridate## [1] "2023-10-10"
最近では、最新のライブラリはCRANだけでなく、GitHubというプログラム開発プラットフォームからインストールすることもあります。ただし、GitHubのライブラリはCRANによるチェックを受けていないものですので、インストールする際には注意が必要です。GitHubからのライブラリのインストールには、devtools
(Wickham et al. 2022)パッケージのinstall_github
関数を用います。引数には、ライブラリのリポジトリというものを文字列で取ります。
例えば、Displayrという会社が開発しているflipPlots
というライブラリをGitHubからインストールする場合には、GitHubの対象のページのアドレス(https://github.com/Displayr/flipPlots)のうち、後ろの2つの項目(Displayr/flipPlots
)をリポジトリとして取り扱います。GitHubのページにはリポジトリ名が記載されています。
GitHubからのライブラリのインストール
# flipPlotsというライブラリをGitHubからインストールする(インストールは自己責任で)
# devtools::install_github("Displayr/flipPlots")
GitHubは、Git(バージョン管理システム)というものと連携して用いる、リモートリポジトリと呼ばれるものです。RstudioからGit及びGitHubを利用することもできます。
生物系の統計手法(DNAのアライメントやシーケンサーデータの処理、系統樹の計算等)のライブラリを専門的に取り扱っているのが、Bioconductorです。Bioconductorに設定されているライブラリはCRANやgithubのものとは取り扱いが少し異なります。
Bioconductorのライブラリを利用するには、BiocManager
(Morgan and Ramos 2023)というライブラリをあらかじめインストールする必要があります。BioconductorのライブラリのインストールにはこのBiocManeger
パッケージのinstall
関数を用います。install
関数を引数なしで用いると、Bioconductorのコアライブラリをすべてインストールすることができます。特定のライブラリをインストールするときには、引数に文字列のライブラリ名を入力します。
インストールしたBioconductorライブラリのロードは通常のライブラリと同様にlibrary
関数で行うことができます。
Bioconductorのライブラリをインストール
install.packages("BiocManager") # BioManagerパッケージのインストール
::install() # Bioconductorのコアライブラリをインストールする
BiocManager::install(c("GenomicFeatures", "AnnotationDbi")) BiocManager
ライブラリはインストールしないとロードすることができません。ですので、インストールしていないライブラリをロードしようとするととエラーが出ます。if
文を用いると、ライブラリがインストールされていないときにはインストールしてロード、インストールされているときにはロードが実行されるようにすることもできます。
pacman::p_load関数によるライブラリのロード
# climetricsパッケージ(気候変化に関するライブラリ)は
# インストールされていないので、エラーが出る
library(climetrics)
require(climetrics) # インストールしないと読み込めないので、FALSEが返ってくる
# require関数でFALSEが返ってきたら、パッケージをインストールする
if(!require(climetrics)) install.packages("climetrics")
このif
文とrequire
関数を用いる書き方は長い間使用されてきましたが、やや複雑で覚えにくいものです。このようなライブラリの取り扱いを簡単にしてくれるのがpacman
(Rinker and Kurkiewicz 2018)パッケージです。近年では、このpacman
パッケージのp_load
関数を用いてパッケージをロードすることも増えてきています。p_load
関数を用いるには、pacman
パッケージをロードする必要があります。ライブラリのロードのために別途pacman
だけロードするのは面倒ですので、pacman::p_load
という形で、ライブラリをロードすることなく関数だけ用いるのが一般的です。この他に、pak(Csárdi and Hester 2024)と呼ばれるパッケージ管理のライブラリも最近では用いられています。
pacman::p_load関数を用いたライブラリのロード
# ライブラリをロードする(インストールされてなければインストールしてからロードする)
::p_load(tidyverse, lubridate) pacman
近年のRでは、Posit(旧Rstudio、IDEであるRstudioの開発元)およびPositのチーフサイエンティストであるHadley Wickhamが中心となって作成された複数のライブラリのセットである、tidyverse
(Wickham et al. 2019)を用いるのがほぼ常識となっています。tidyverse
のライブラリ群を用いなくてもRを使うことはできますが、このライブラリ群を用いることでデータの整理・グラフ作成・文字列の処理等を簡単に行うことができるようになります。tidyverse
のライブラリ群は以下のように一度にインストール・ロードすることができます。
tidyverseのインストールと読み込み
::p_load(tidyverse) # tideverseのインストール・ロード(install.packages・library関数でも可) pacman
tidyverse
に含まれているライブラリを以下に示します。個別の、重要なライブラリに関しては別章で説明します。
ライブラリ名 | ライブラリの主な機能 |
---|---|
dpylr | データフレームの編集 |
tidyr | データフレームの変形(縦・横持ち) |
ggplot2 | 現代的なデザインのグラフ作成 |
tibble | 使いやすいデータフレームの提供 |
stringr | 文字列の処理 |
purrr | リストへの関数の適用 |
readr | データ読み込み |
forcats | 因子(factor)の処理 |
tidyverse
の他にも、データ処理を簡単にしたり、インタラクティブなグラフを作成したり、Rで文書を作成したりするためのライブラリをRは備えています。以下によく用いられるライブラリを示します。統計に関するライブラリも無数に存在します。統計に関するライブラリについては、統計手法の説明の際に紹介します。
ライブラリ名 | ライブラリの主な機能 |
---|---|
magrittr | パイプ演算子を提供 |
readxl | Excelファイルの読み込み |
googlesheet4 | Googleスプレッドシートの読み込み |
lubridate | 日時データの処理 |
broom | 統計結果の変形 |
DT | 美しい表の作成 |
plotly | インタラクティブなグラフの作成 |
Rmarkdown | 文書の作成 |
shiny | Webアプリケーションの作成 |
pacman | ライブラリのインストール・ロード |