Rで解析:依存関係でパッケージ導入を迷っている方へオススメ!「switchr」パッケージ


Rを実務で使用している方は非常に多いと思います。しかし、実務で使用している場合は依存パッケージのこともあり「便利そうなパッケージ」のインストールを躊躇する方も多いと思います。そんな問題を解決する「switchr」パッケージを紹介します。

本パッケージは、新規にパッケージライブラリを作成し「パッケージをインストール」します。ですので、デフォルトのパッケージライブラリに影響せずにパッケージを試すことができます。

また、依存パッケージのバージョンがシビアな「twitteR」などへの影響を確認することが簡単にできます。また、特定バージョンのパッケージに関する推奨の依存パッケージ含めてインストールする便利なコマンドも収録されています。

Rを日常に利用している方だけではなく、システム管理者にもオススメしたいパッケージです。

パッケージのバージョンは0.9.18。R version 3.2.2でコマンドを確認しています。


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

下記コマンドを実行してください。

#パッケージのインストール
install.packages("switchr")

実行コマンド

詳細はコマンド、パッケージヘルプを確認してください。

#パッケージの読み込み
library("switchr")

#パッケージ検証用フォルダを指定:switchrBaseDirコマンド
#注意:選択ダイアログが他のウィンドウの下に表示される場合があります
library("tcltk")
switchrBaseDir(as.character(tkchooseDirectory(title = "パッケージ検証用フォルダを選択")))

#パッケージライブラリの切替:switchToコマンド
#新規作成/指定ライブラリがない場合は「デフォルトのパッケージライブラリ情報」を
#引き継いだライブラリフォルダをパッケージ検証用フォルダに作成します
#switchToコマンド実行以降は指定したライブラリフォルダにパッケージがインストールされます
switchTo("TestLibrary")
Switched to the 'TestLibrary' computing environment. 
260 packages are currently available.
Packages installed in your site library ARE suppressed.
To switch back to your previous environment type switchBack()

#デフォルトのパッケージライブラリに戻す:switchBackコマンド
switchBack()
Reverted to the 'TestLibrary' computing environment. 
260 packages are currently available.
Packages installed in your site library ARE suppressed.
To switch back to your previous environment type switchBack()

#switchrBaseDirコマンドで指定したフォルダにある
#パッケージライブラリフォルダを削除:removeLibコマンド
removeLib("パッケージライブラリフォルダ名")

#インストールされているパッケージの一覧表示:libManifestコマンド
#結果はS4クラスです
LibList <- libManifest()
#パッケージの一覧を抽出
#出力クラスはデータフレームとなります
AllLibList <- LibList @ pkg_versions
head(AllLibList)
                       name version
abind                 abind   1.4-3
acepack             acepack 1.3-3.3
animation         animation     2.3
annotate           annotate  1.46.1
AnnotationDbi AnnotationDbi  1.30.1
apaTables         apaTables   1.0.3

#推奨の依存パッケージ含めてインストール:cranPkgVersManifestコマンド
SelectPackVer <- cranPkgVersManifest(pkg = "twitteR", vers = "1.1.8")
SelectPackVer
Loading required namespace: RJSONIO
A seeding manifest (SessionManifest object)

Describes a cohort of 15 package versions. 
15 packages are listed in the underlying package manifest

Package versions:
  name      version   
1   "twitteR" "1.1.8"   
2   "bit64"   "0.9-4"   
3   "rjson"   "0.2.15"  
4   "DBI"     "0.3.1"   
... "..."     "..."     
11  "mime"    "0.2"     
12  "RCurl"   "1.95-4.5"
13  "R6"      "2.0.1"   
14  "stringr" "0.6.2"   
15  "bitops"  "1.0-6"   

#パッケージのインストール
install_packages("twitteR", SelectPackVer)

作業例:dplyrパッケージの導入

デフォルトのパッケージライブラリに影響しないで、動作確認を実施する例です。便利な「dplyr」パッケージを例に紹介します。もし、「dplyr」パッケージがインストールされている場合は「remove.packages(“dplyr”)」を実行してから試してみてください。

#デフォルトのパッケージライブラリにdplyrパッケージが無いことを確認
library("dplyr")
Error in library("dplyr") : 
  ‘dplyr’ という名前のパッケージはありません
#パッケージの読み込み
library("switchr")
library("tcltk")
#パッケージ検証用フォルダを指定
#デスクトップにPackageTestフォルダを作成してください
switchrBaseDir(as.character(tkchooseDirectory(title = "パッケージ検証用フォルダを選択")))
#パッケージライブラリをTestLibraryに切り替え
#TestLibraryフォルダが無い場合は新規に作成されます
switchTo("TestLibrary")
Switched to the 'TestLibrary' computing environment. 
259 packages are currently available.
Packages installed in your site library ARE suppressed.
To switch back to your previous environment type switchBack()
#一応確認
library("dplyr")
Error in library("dplyr") : 
  ‘dplyr’ という名前のパッケージはありません
#dplyrライブラリのインストール
install.packages("dplyr")
#パッケージのインストール先が変更されています
Installing package into ‘省略/PackageTest/TestLibrary’
(as ‘lib’ is unspecified)
以下省略
#導入の確認
#パッケージ数が260になっています
switchTo("TestLibrary")
Switched to the 'TestLibrary' computing environment. 
260 packages are currently available.
Packages installed in your site library ARE suppressed.
To switch back to your previous environment type switchBack()
#パッケージの読み込み
#読み込みエラーは出ません
library("dplyr")
#デフォルトパッケージライブラリに戻す
switchBack()
#パッケージ数が259になっています
Reverted to the 'TestLibrary' computing environment. 
259 packages are currently available.
Packages installed in your site library ARE suppressed.
To switch back to your previous environment type switchBack()
#dplyrパッケージが無いのでエラーとなります
library("dplyr")
Error in library("dplyr") : 
  ‘dplyr’ という名前のパッケージはありません 
########

少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク