この付録では、Rパッケージの操作に関連するいくつかの手順について説明します。Oracle R Enterpriseをインストール、アンインストールまたはアップグレードするタスクを実行するとき、Rパッケージの操作経験が少ない場合は、この付録の情報が役立つことがあります。
ここでは、次の項目について説明します。
Rパッケージは、Rコマンドラインまたはシステムのコマンドラインからインストールできます。
Rパッケージのインストールの基本は、Rインストレーションおよび管理ガイドの第6章で説明されています。次の例では、Oracle R Distributionを使用してパッケージをOracle Linuxにインストールします。すべてのユーザーがアクセス可能なRシステム全体のデフォルトの場所(/usr/lib64/R/library
)にパッケージがインストールされるように、arulesパッケージをrootとしてインストールします。
R内でinstall.packages
関数を使用すると、常に、リクエストされたパッケージの、CRANで使用できる最新バージョンのインストールが試行されます。
R> install.packages("arules")
arulesパッケージが、ローカルにインストールされていない他のパッケージに依存する場合は、Rインストーラは、これらの必要なパッケージを自動的にダウンロードしてインストールします。これにより、ユーザーがこれらの依存性を特定して解決する必要がなくなることは、非常に大きい利点となります。
また、シェル・コマンドラインからRをインストールすることもできます。このことは、インターネット接続を使用できない場合や、CRANにアップロードされていないパッケージをインストールする場合に、一部のパッケージで役立ちます。この方法でパッケージをインストールするには、まずCRANでパッケージを探して、ローカル・マシンにパッケージ・ソースをダウンロードします。例:
$ wget http://cran.r-project.org/src/contrib/arules_1.1-9.tar.gz
次に、コマンドR CMD INSTALL
を使用してパッケージをインストールします。
$ R CMD INSTALL arules_1.1-9.tar.gz
Rパッケージ・インストーラを使用してRパッケージをインストールする場合のRコマンドラインとシェル・コマンドラインの主な違いは、シェル・コマンドラインではパッケージの依存性を手動で解決する必要があるということです。パッケージの依存性は、パッケージのCRANサイトの依存セクションにリストされています。パッケージをインストールする前に依存性を特定しないでインストールすると、次のようなエラーが発生します。
ERROR: dependency 'xxx' is not available for package 'yyy'
ベスト・プラクティスとして、および時間を節約するために、インストールを試行する前に、常に、パッケージのCRANサイトを参照してパッケージの依存性を理解してください。
Rをrootとして実行しない場合は、デフォルトのシステム全体の場所にパッケージを書き込む権限がないため、自分のユーザーIDでアクセスできる個人用ライブラリを作成するよう求められます。Rに選択された個人用ライブラリ・パスを受け入れるか、install.packages
関数にパラメータを渡すことによってライブラリの場所を指定できます。たとえば、ホーム・ディレクトリにRパッケージ・リポジトリを作成するには、次の手順を実行します。
R> install.packages("arules", lib="/home/username/Rpackages")
または
$ R CMD INSTALL arules_1.1-9.tar.gz --library=/home/username/Rpackages
コマンドライン・オプションをすべて示すリストを確認するには、R内のinstall.packages
ヘルプ・ファイルを参照するか、シェル・コマンドラインでR
CMD
INSTALL --help
を実行します。
ライブラリの場所を設定して、これをパッケージのインストールで毎回指定する必要がないようにするには、単に、ホーム領域にRの起動環境ファイル.Renviron
を作成して(存在しない場合)、次のコードを追加します。
R_LIBS_USER = "/home/username/Rpackages"
RパッケージをRコマンドラインからインストールするたびに、RでいずれのCRANミラーまたはサーバーを使用するかを尋ねられます。リポジトリを設定して、これをパッケージのインストール中に毎回指定する必要がないようにするには、ホーム・ディレクトリにRの起動コマンド・ファイル.Rprofileを作成して、次のRコードを追加します。
cat("Setting Seattle repository") r = getOption("repos") r["CRAN"] = "http://cran.fhcrc.org/" options(repos = r) rm(r)
このコード・スニペットでは、各Rセッションが開始するときに、Rパッケージ・リポジトリをSeattle CRANミラーに設定します。
Oracle R Enterpriseを使用する埋込みRの実行では、Oracle Databaseサーバーで実行されるユーザー定義のR関数で、CRANまたは他のサード・パーティのRパッケージを使用できます。Oracle R Enterpriseで使用するパッケージをインストールおよび構成する手順は、オープン・ソースRの場合と同じです。データベース側Rエンジンでは、単にRパッケージを探す場所を認識することが必要となります。
Oracle R Enterpriseのインストールはユーザーoracleによって実行され、通常、このユーザーには、デフォルトのサイト全体のライブラリ/usr/lib64/R/libraryに書き込む権限はありません。LinuxおよびUNIXプラットフォームでは、Oracle R Enterprise ServerのインストールにOREスクリプトが備えられており、これをオペレーティング・システムのシェルから実行してRパッケージをインストールし、Rを起動します。OREスクリプトは、デフォルトのRスクリプトのラッパー、R実行可能ファイルのシェル・ラッパーです。これを使用して、Rを起動し、バッチ・スクリプトを実行し、Rパッケージを構築またはインストールできます。デフォルトのRスクリプトとは異なり、OREスクリプトは、ユーザーoracleが書き込むことができ、すべてのOREユーザーがアクセスできる場所($ORACLE_HOME/R/library)にパッケージをインストールします。
任意のRユーザーおよび埋込みRの実行で使用できるように、データベース・サーバーにパッケージをインストールするには、通常、Oracle DBAがwgetを使用してCRANからパッケージ・ソースをダウンロードします。そのパッケージが、使用していないR Distributionのパッケージに依存している場合は、そのパッケージのソースもダウンロードします。
単一のOracle Databaseインスタンスでは、RスクリプトをOREに置き換えて、Oracle R Enterpriseパッケージと同じ場所にパッケージをインストールします。
$ wget http://cran.r-project.org/src/contrib/arules_1.1-9.tar.gz $ ORE CMD INSTALL arules_1.1-9.tar.gz
バックグラウンドで、OREスクリプトは、R_LIBS_USERを$ORACLE_HOME/R/libraryの値に設定することに相当することを実行するため、OREスクリプトでインストールされるすべてのRパッケージは、この場所にインストールされます。Oracle Real Application Clusters (Oracle RAC)や複数ノードのOracle Exadataデータベース・マシン環境などの複数のデータベース・サーバーにパッケージをインストールする場合は、OREスクリプトとExadata分散コマンドライン・インタフェース(DCLI)ユーティリティを組み合せて使用します。
$ dcli -g nodes -l oracle ORE CMD INSTALL arules_1.1-9.tar.gz
DCLI -gフラグはインストール先のノードのリストを含むファイルを指定し、-lフラグはコマンドの実行時に使用するユーザーIDを指定します。Oracle R EnterpriseでのDCLIの使用方法の詳細は、Oracle R Enterpriseインストレーション・ガイドの第5章を参照してください。
Oracle R Enterpriseクライアントを使用している場合は、Rパッケージと同じパッケージをインストールします。非互換性を回避するために、クライアント・マシンとサーバー・マシンの両方に同じバージョンのパッケージをインストールする必要があることに注意してください。
CRANでは、特定のタスクや方法に関連付けられたパッケージを示す、一連のタスク・ビューも管理しています。タスク・ビューは、使用可能な膨大な一連のRパッケージからユーザーが必要な情報を探すのに役立ちます。これらは、ルーチンおよびパッケージの詳細な注釈を追加するボランティアによってアクティブに管理されています。タスク・ビューのいずれかが完全に一致することがわかった場合、ctvパッケージ(パッケージのインストールを自動化するためのRパッケージ)を使用して、そのビューのすべてのパッケージをインストールできます。
ctvパッケージを使用してタスク・ビューをインストールするには、まずctvパッケージをインストールおよびロードします。
R> install.packages("ctv")
R> library(ctv)
次に、使用可能なタスク・ビューの名前を問い合せて、選択したビューをインストールします。
R> available.views()
R> install.views("TimeSeries")
パッケージの使用および管理
パッケージを使用するには、Rを起動して、libraryコマンドでパッケージを1つずつロードします。
Rセッションで、arulesパッケージをロードします。
R> library(arules)
インストールされたarulesのバージョンを確認します。
パッケージを使用するには、Rを起動して、libraryコマンドでパッケージを1つずつロードします。
Rセッションで、arulesパッケージをロードします。
R> library(arules)
インストールされたarulesのバージョンを確認します。
R> packageVersion("arules")
[1] '1.1.9'
埋込みRの実行を使用して、データベース・サーバーにインストールされたarulesのバージョンを確認します。
R> ore.doEval(function() packageVersion("arules"))
arulesのapropos関数のヘルプ・ファイルを表示します
パッケージ
R> ?apropos
パッケージ・リポジトリ内のパッケージは徐々に増えていきます(特に、他のユーザーが別のパッケージを追加しているシステム全体のリポジトリを使用している場合)。使用環境でアクセスできる一連のRパッケージの全体を把握しておくと有益です。ローカルRセッションですべての使用可能なパッケージをリストするには、installed.packagesコマンドを使用します。
R> myLocalPackages <- row.names(installed.packages())
R> myLocalPackages