ライブラリのインストール
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関数を引数なしで実行すると、インストールされているライブラリの一覧が表示されます。
ライブラリには、読み込み時にメッセージを表示するものがあります。例えば上記のtidyverseパッケージは読み込み時にメッセージが表示されます。
ライブラリ読み込み時のメッセージを表示させたくない場合には、suppressPackageStartupMessagesという関数を用います。
メッセージを表示せずにライブラリを読み込む
ライブラリに登録されている関数を用いるには、通常ロードする必要がありますが、ライブラリをロードしなくても個別の機能(関数)を用いることはできます。ライブラリをロードせずにそのライブラリの関数を用いるときには、「ライブラリ名::関数名」という形で関数を呼び出します。
最近では、最新のライブラリは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パッケージのインストール
BiocManager::install() # Bioconductorのコアライブラリをインストールする
BiocManager::install(c("GenomicFeatures", "AnnotationDbi"))ライブラリはインストールしないとロードすることができません。ですので、インストールしていないライブラリをロードしようとするととエラーが出ます。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関数を用いたライブラリのロード
# ライブラリをロードする(インストールされてなければインストールしてからロードする)
pacman::p_load(tidyverse, lubridate)近年のRでは、Posit(旧Rstudio、IDEであるRstudioの開発元)およびPositのチーフサイエンティストであるHadley Wickhamが中心となって作成された複数のライブラリのセットである、tidyverse (Wickham et al. 2019)を用いるのがほぼ常識となっています。tidyverseのライブラリ群を用いなくてもRを使うことはできますが、このライブラリ群を用いることでデータの整理・グラフ作成・文字列の処理等を簡単に行うことができるようになります。tidyverseのライブラリ群は以下のように一度にインストール・ロードすることができます。
tidyverseのインストールと読み込み
pacman::p_load(tidyverse) # tideverseのインストール・ロード(install.packages・library関数でも可)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 | ライブラリのインストール・ロード |