R はパッケージ(ライブラリ)を追加することで様々な分析に対応でき、機能も追加することができます。2017年4月1日の時点で10,000を超えるパッケージが CRANに登録 されています。パッケージのインストールの際にはインターネット接続が必要ですのでプロキシサーバを設定する必要がある環境にいる場合は、 R のコンソールにて以下のコマンドを実行してください。
Sys.setenv("http_proxy"="http://<Proxyサーバ名 or IPアドレス>:<Port番号>")
上記のコマンドを使っても接続できない場合は、以下のサイトを参考にプロキシサーバの設定を行ってください。
R のパッケージは基本的に CRAN からダウンロードします。実際にはダウンロードする際にはなるべく近いダウンロードサイト(ミラーサイト)からダウンロードします。ミラーサイトを指定するためにRのメニューから[パッケージ]-[CRANミラーサイトの設定…]を選択します。
CRAN のミラーサイト一覧が別ウィンドウに表示されますので、一番近いと思われる統数研のサーバがある Japan(Tokyo) を選択し、[OK]ボタンをクリックします。
Linux環境でRを利用している場合、Rはターミナル(端末)上のコマンドラインとして実行されるためメニュー表示がありませんので、以下のコマンドを実行してください。
chooseCRANmirror()
Linux環境もでGUIモードでRを起動することができますがWindows版に比べるとメニュー構成が非常に貧弱ですのであまりおすゝめはできません。GUIモードのRを起動するにはターミナルから以下を実行して下さい。
R --gui=Tk
Rのパッケージをインストールする手順はRcmdr
のインストールと同じく起動したRから行う方法、RStudioから行う方法、スクリプトを用いる方法があります。
インターネットに接続できていることが確認できましたら R のメニューから[パッケージ]-[パッケージのインストール…]を選択します。
別ウィンドウにパッケージ一覧が表示されますのでインストールしたいパッケージを選択し[OK]ボタンをクリックします。依存関係があるパッケージがインストールされていない場合には自動的に必要なパッケージもインストールされます。
Linux環境でRを利用している場合、Rはターミナル(端末)上のコマンドラインとして実行されるためメニュー表示がありませんので、以下のコマンドを実行してください。
install.packages("Rcmdr")
Linux環のGUIモードでもパッケージの追加インストールは可能です。
RStudio からパッケージをインストールする場合は[Packages]タブの[Install]ボタンをクリックします。[Install Packages]ダイアログが開きますので[Packages]欄にインストールしたいパッケージ名を入力します。パッケージ名は途中まで入力すると自動的にサジェストしてくれます。
多数のパッケージを一度にインストールするには予めRのスクリプトを記述しておいてからインストールする方法が最も簡単です。R やRStudio ではメニューからパッケージをインストールしていますが最終的にはスクリプト(関数)呼び出しでパッケージをインストールしています。具体的には以下の手順となります。
手順 | 記述内容 | 備考 |
---|---|---|
1 | CRANミラーサイトの設定 | 最も近いサイトを選ぶとダウンロード時間を短くできます |
2 | パッケージリストの作成 | インストールしたいパッケージ名のリストを作成します |
3 | パッケージのインストール | 作成したリストを用いてパッケージをインストールします |
上記の手順を実際のスクリプトで記述すると非常に簡単で下記のようになります。パッケージ名の部分(2行目)を変更するだけでインストールしたいパッケージをインストールすることができます。
chooseCRANmirror()
pkg_lst <- c("tidyverse", "rmarkdown", "knitr", "DT")
install.packages(pkg_lst, dependencies = TRUE)
試験的なパッケージなどは 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-dev
をInstall 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
これで必要なファイルが入手できましたので、再度、パッケージのインストールを実行します。
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)
CC BY-NC-SA 4.0 , Sampo Suzuki [2019-05-10(JST)]