Java R Interface (JRI) を用い 統計解析環境 R を Java から使用する

統計解析・データマイニング環境の R を Java から使用する方法を以下に紹介する。
現在、RをJavaで使用する方法に関する文献は非常に少ないが参考サイトをまとめたものも下部に記述する。
rJava というPackageに含まれている Java R Interface (JRI) を用い R をJavaから呼び出すことができる。


※rJava:
 Download: http://www.rforge.net/rJava/files/
 SVN: svn://svn.rforge.net/rJava/

※以下、Eclipse 3.4.2の環境を例に説明する。

※また、EclipseR言語環境自体を使う方法はR を Eclipse で使うを参照。

統計解析環境 R のインストール・環境設定:

統計解析環境 R 自体のインストール・環境設定はR のインストール・環境設定を参照。

rJavaのインストール

※以下、Rをインストールしたフォルダ R_HOME = C:\R\R-2.10.1\ として説明する。

1. Rを起動し、rJava」パッケージをインストールする。
install.packages('rJava')


2. C:\R\R-2.10.1\library下に rJava フォルダが作成される。

その下の C:\R\R-2.10.1\library\rJava\jri 下にjri.dll, JRI.jar が配置されている。

Java Project の設定

1. ProjectのProperty->Java Build Path-> Librariesタブで、"External JARs"を選択。


2. C:\R\R-2.10.1\library\rJava\jri 下の JRI.jar を追加。

3. Run -> Run Configuration

以下の変数を設定する。

Path: C:\R\R-2.10.1\bin
R_DOC_DIR: C:\R\R-2.10.1\doc
R_INCLUDE_DIR: C:\R\R-2.10.1\include
R_SHARE_DIR: C:\R\R-2.10.1\share

4. Project直下にjri.dll (C:\R\R-2.10.1\library\rJava\jri)をコピー。

Java Class Sample

Rとの接続は「Rengine」というClassが担い、assign()メソッドで値の受け渡しを行う。Rのコマンド実行はeval()メソッドで行う。動作確認のため以下にシンプルなサンプルを記述する。36の平方根を求めるプログラムで、結果は 6.0 となる。

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
public class JriTest 
{
	public static void main(String[] args) 
	{
		Rengine engine = new Rengine(new String[]{"--no-save"}, false, null);
		engine.assign("a", new int[]{36});
		REXP result = engine.eval("sqrt(a)");
		System.out.println(result.asDouble());
		engine.end();
	}
}

実行結果

6.0

org.rosuda.JRI: http://www.rforge.net/org/docs/org/rosuda/JRI/package-summary.html


今後、JRI使用法や Google App Engine for Java (GAE/J)とのからみも今後紹介していきたいと思います。

補足:SVN設定

Rの SVNの設定手順も以下に紹介します。

Subversive Eclipse Plug-in インストール

Eclipseになじみのない人のために、SVNSubversive プラグインのインストール設定も記述します。

1. Help -> Software Updates... を選択。Add Site押下。次のLocationをそれぞれ入力しOKを押下。

2. [Available Software]タブを選択

Location:
http://download.eclipse.org/technology/subversive/0.7/update-site/
http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/


3.svnと入力し「Subversive Site」と「SVN Connecters Site」の関連プラグインのみが表示させる。下記の5つのプラグインにチェックをして、[インストール]をクリックします。

Subversive SVN Integration for Mylyn Project
Subversive SVN Term Provider
Subversive SVN Term Provider Localization
Subversive SVN Connecters
・SVNKit 1.2.2 Inplementation


参考:
Eclipse 3.4でのバーション管理方法(Subversion編) ~Eclipse 3.4入門~ (3/4):CodeZine(コードジン)
Eclipse/プラグイン開発のTIPS集/GanymedeにSubversiveをインストールする - きのさいと
eclipsewiki.net - このウェブサイトは販売用です! -&nbspeclipsewiki リソースおよび情報

Subversion リポジトリロケーションの追加

1. Window -> Open Perspective -> Others を選択。
2. "SVNリポジトリー・エクスプローラー"を選択しOK。

3. "New Repository Location"ボタンをクリック、または、SVN Repository View を右クリックしてNew->Repository Locationを実行。

4. URL に以下のrJava SVN RepositoryのURLを入力し"Finish"押下。
 rJava SVN Repository:
 svn://svn.rforge.net/rJava/trunk

5. SVNリポジトリーにrJavaのRepository Locationが表示され、利用できるようになります。

文献:

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによる統計解析

Rによる統計解析

Rグラフィックス ―Rで思いどおりのグラフを作図するために―

Rグラフィックス ―Rで思いどおりのグラフを作図するために―

R: The R Project for Statistical Computing
http://www.okada.jp.org/RWiki/
R言語 - Wikipedia