R はパッケージ(ライブラリ)を追加することで様々な分析に対応でき、機能も追加することができます。2017年4月1日の時点で10,000を超えるパッケージが CRANに登録 されています。パッケージのインストールの際にはインターネット接続が必要ですのでプロキシサーバを設定する必要がある環境にいる場合は、 R のコンソールにて以下のコマンドを実行してください。

Sys.setenv("http_proxy"="http://<Proxyサーバ名 or IPアドレス>:<Port番号>")

上記のコマンドを使っても接続できない場合は、以下のサイトを参考にプロキシサーバの設定を行ってください。

 

ミラーサイトの設定

R のパッケージは基本的に CRAN からダウンロードします。実際にはダウンロードする際にはなるべく近いダウンロードサイト(ミラーサイト)からダウンロードします。ミラーサイトを指定するためにRのメニューから[パッケージ]-[CRANミラーサイトの設定…]を選択します。

CRANミラーサイトの設定

CRANミラーサイトの設定

CRAN のミラーサイト一覧が別ウィンドウに表示されますので、一番近いと思われる統数研のサーバがある Japan(Tokyo) を選択し、[OK]ボタンをクリックします。

CRANミラーの選択

CRANミラーの選択

 

Linuxの場合

Linux環境でRを利用している場合、Rはターミナル(端末)上のコマンドラインとして実行されるためメニュー表示がありませんので、以下のコマンドを実行してください。

chooseCRANmirror()

GUIモードで起動する

Linux環境もでGUIモードでRを起動することができますがWindows版に比べるとメニュー構成が非常に貧弱ですのであまりおすゝめはできません。GUIモードのRを起動するにはターミナルから以下を実行して下さい。

R --gui=Tk

 

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

Rのパッケージをインストールする手順はRcmdrのインストールと同じく起動したRから行う方法、RStudioから行う方法、スクリプトを用いる方法があります。
 

Rからインストールする方法

インターネットに接続できていることが確認できましたら R のメニューから[パッケージ]-[パッケージのインストール…]を選択します。

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

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

別ウィンドウにパッケージ一覧が表示されますのでインストールしたいパッケージを選択し[OK]ボタンをクリックします。依存関係があるパッケージがインストールされていない場合には自動的に必要なパッケージもインストールされます。
 

Linuxの場合

Linux環境でRを利用している場合、Rはターミナル(端末)上のコマンドラインとして実行されるためメニュー表示がありませんので、以下のコマンドを実行してください。

install.packages("Rcmdr")

 

GUIモードからインストールする

Linux環のGUIモードでもパッケージの追加インストールは可能です。

Linux環境のGUIモードでのインストール

Linux環境のGUIモードでのインストール

 

RStudioからインストールする方法

RStudio からパッケージをインストールする場合は[Packages]タブの[Install]ボタンをクリックします。[Install Packages]ダイアログが開きますので[Packages]欄にインストールしたいパッケージ名を入力します。パッケージ名は途中まで入力すると自動的にサジェストしてくれます。

Install Pkg w/ RStudio

Install Pkg w/ RStudio

 

スクリプトを用いる方法

多数のパッケージを一度にインストールするには予めRのスクリプトを記述しておいてからインストールする方法が最も簡単です。R RStudio ではメニューからパッケージをインストールしていますが最終的にはスクリプト(関数)呼び出しでパッケージをインストールしています。具体的には以下の手順となります。

手順 記述内容 備考
1 CRANミラーサイトの設定 最も近いサイトを選ぶとダウンロード時間を短くできます
2 パッケージリストの作成 インストールしたいパッケージ名のリストを作成します
3 パッケージのインストール 作成したリストを用いてパッケージをインストールします

上記の手順を実際のスクリプトで記述すると非常に簡単で下記のようになります。パッケージ名の部分(2行目)を変更するだけでインストールしたいパッケージをインストールすることができます。

chooseCRANmirror()
pkg_lst <- c("tidyverse", "rmarkdown", "knitr", "DT")
install.packages(pkg_lst, dependencies = TRUE)

 

CRAN以外からのインストール

試験的なパッケージなどは CRAN には登録されていないことがあります。このようなパッケージを使いたい場合はdevtoolパッケージを利用します。例えばGitHubからインストーする場合はdevtools::install_github関数を用います。この関数で注意すべき点はリポジトリの指定方法です。必ずGitHubのユーザアカウントと共に指定して下さい。

install.packages("devtools")        # インストールされていない場合のみ
git_rep <- c("account/repository")
devtools::install_github(git_rep)

devtoolsパッケージを用いるとGitHub以外にもBioconductorやbitbucket、SVNのリポジトリ等からもインストールが可能になります。詳しくはdevtoolsパッケージのヘルプを参照して下さい。
 

インストールが失敗する場合

Linux環境やMacOS環境ではパッケージをインストールする際に以下のようなエラーが出てパッケージのインストールが失敗する場合があります。失敗する原因はRをインストールした際に必要なアプリケーションモジュール(ライブラリ)がインストールされていないためです。

* installing *source* package ‘openssl’ ...
  パッケージ ‘openssl’ の解凍および MD5 サムの検証に成功しました 
Using PKG_CFLAGS=
Using PKG_LIBS=-lssl -lcrypto
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because openssl was not found. Try installing:
 * deb: libssl-dev (Debian, Ubuntu, etc)
 * rpm: openssl-devel (Fedora, CentOS, RHEL)
 * csw: libssl_dev (Solaris)
 * brew: openssl (Mac OSX)
If openssl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a openssl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------

このようなエラーメッセージが表示された場合は、まず、r-base-devというアプリケーションモジュールがインストールされているか確認してください。Ubuntu環境の場合はターミナル(端末)から以下のコマンドを実行することでインストールの有無を確認できます。

Ubuntuの場合

dpkg -l | grep r-base-dev

出力結果にr-base-devが表示されない場合はインストールされていませんので、r-base-devInstall Rを参考にしてインストールしてください。
 

それでもインストールが失敗する場合

r-base-devがインストールされているにも関わらずインストールが失敗する場合は、エラーメッセージの“ANTICONF ERROR”に注目して不足しているライブラリを手動でインストールします。上記の場合はlibssl-dev(Ubuntuの場合)がインストールされていませんので、ターミナル(端末)から以下のコマンドを実行してインストールします。

Ubuntuの場合

sudo apt-get install libssl-dev

 

ファイルが見当たらない場合

前述のようにパッケージやライブラリが不足しているというメッセージが出た場合は、当該のパッケージやライブラリをインストールすれば解決できますが、パッケージによっては「ヘッダファイルが見当たらない」とか「コンフィグファイルが見当たらない」というようなエラーが出る場合があります。例えば以下のメッセージはパッケージのコンパイルに必要なlibpq-fe.hファイルが見当たらないのでコンパイルが中止されていることが分かります。
 

RS-PostgreSQL.h:23:26: fatal error: libpq-fe.h: そのようなファイルやディレクトリはありません
compilation terminated.

 
このような場合、Ubuntuのapt-fileコマンドを利用して当該のファイルがどのライブラリに含まれているかを調べることで解決できます。apt-fileコマンドは標準ではインストールされていませんので以下の手順でインストール、セットアップしてください。
 

$ sudo apt-get update
$ sudo apt-get install apt-file

$ apt-file update
apt-file is now using the user's cache directory.
If you want to switch back to the system-wide cache directory,
 run 'apt-file purge'
Downloading complete file http://jp.archive.ubuntu.com/ubuntu/dists/xenial/Contents-amd64.gz
...

 

apt-file updateの実行にはしばらく時間がかかります。実行が完了したら以下のようにしてファイルがどのライブラリに含まれているか調べ、対象のライブラリが特定できたらインストールします。
 

$ apt-file search libpq-fe.h
libpq-dev: /usr/include/postgresql/libpq-fe.h

$ sudo apt-get update
$ sudo apt-get install libpq-dev

 

これで必要なファイルが入手できましたので、再度、パッケージのインストールを実行します。

 

Ubuntu系のライブラリなど

RStudio Package Manager demo site にてパッケージが必要とするライブラリなどを確認することができます。意図的にインストールしなくても依存関係のあるパッケージがインストールされる際にライブラリを必要とすることもこともあります。下表はその代表的な例です。

Package libraries memo
clipr xclip
OpenCL ocl-icd-opencl-dev
magick libcurl4-openssl-dev libssl-dev imagemagick libmagick++-dev for ggplot2
rJava liblzma-dev libbz2-dev libicu-dev default-jdk zlib1g-dev
Rmpi libopenmpi-dev libopenmpi2 for paralleizarion
RMySQL libmysqlclient-dev mysql-server
RODBC unixodbc-dev
Rpoppler libglib2.0-dev libpoppler-cpp-dev libpoppler-glib-dev
RPostgres libpq-dev
rgl libfreetype6-dev libglu1-mesa-dev libgl1-mesa-dev
ssh libcurl4-openssl-dev libssl-dev libssh2-1-dev
tidyverse libcurl4-openssl-dev libssl-dev libxml2-dev
udunits2 libudunits2-dev

これらのライブラリまたはアプリケーションはパッケージをインストールする前にインストールしておいてください。インストール時のコマンド例を以下に示しておきます。

sudo apt-get update
sudo apt-get install ocl-icd-opencl-dev libcurl4-openssl-dev libssl-dev \
   libmagick++-dev liblzma-dev libbz2-dev libicu-dev zlib1g-dev \
   libopenmpi-dev libopenmpi2 libmysqlclient-dev unixodbc-dev \
   libglib2.0-dev libpoppler-cpp-dev libpoppler-glib-dev libpq-dev \
   libfreetype6-dev libglu1-mesa-dev libgl1-mesa-dev \
   libcurl4-openssl-dev libssl-dev libssh2-1-dev libxml2-dev libudunits2-dev \
   imagemagick default-jdk mysql-server

R CMD javaconf

 

参考)インストール用スクリプト

モダンなR のプログラミングを行う際に一通り必要と思われるパッケージを一度にインストールできるスクリプトを用意しました。ご自分の環境初期設定用に必ずインストールするパッケージをリストアップしておきスクリプト化しておくとRのアップデートの際などに便利です。
 

パッケージリストファイル

インストールしたいパッケージをCSV形式でリストアップしておきます。CSVファイルは以下の形式で作成するのが前提です。将来拡張を見越した項目の構成となっていますがスクリプトが未対応の為記述しても機能しないものもあります。

項目名 内容 備考
package インストールしたいパッケージ名
category パッケージのカテゴリ 現状未使用なので項目ごとの省略可
omit リストには残したいがインストールしたくない場合のフラグ yでインストールしない
rep パッケージのあるリポジトリ CRANのみ対応
memo 備考用 省略可

 
memo欄以外はの記述は省略しないで記述してください。
 

スクリプト

スクリプトはBase Rだけで動くように作成しています。
 

# データ分析勉強会参加メンバー向け推奨パッケージのインストールスクリプト
# (フルインストール版)
# 処理概要
#     1. パッケージをダウンロードするCRANのミラーサイトを選ぶ
#     2. インストールしたいパッケージを記述したCSVファイルを読み込む
#     3. インストール済のパッケージを取得する
#     4. インストールすべきパッケージの一覧を作成する
#     5. パッケージをインストールする(CRAN以外は未対応)
#     6. パッケージを更新する

# Choose nearest CRAN mirror site(最も物理的に近いサイトを選択します)
chooseCRANmirror(graphics = TRUE)

# インストールしたいパッケージ・リストをファイルから取得します
pkg_lst <- read.csv("./packages.csv", fileEncoding = "UTF-8")

# インストール済のパッケージ一覧を取得
installed_list <- as.data.frame(installed.packages())$Package

# インストールするパッケージ一覧を作成
install_list <- !(pkg_lst$package %in% installed_list)
install_pkg <- pkg_lst$package[pkg_lst$omit != "y" & pkg_lst$rep != "github" &
                                 install_list]

# パッケージのインストール
install.packages(pkgs = as.character(install_pkg))

# パッケージの更新
# 新規インストール時には更新の必要なないはずですが心配ならアップデートチェックを
update.packages(ask = "graphics")

# 作成したオブジェクトを掃除
rm(pkg_lst, installed_list, install_list, install_pkg)

 
 


Sampo Suzuki CC BY-NC-SA 4.0 , Sampo Suzuki [2019-05-10(JST)]