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の環境を例に説明する。
※また、Eclipseで R言語環境自体を使う方法は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
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になじみのない人のために、SVNのSubversive プラグインのインストール設定も記述します。
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 - このウェブサイトは販売用です! - eclipsewiki リソースおよび情報
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が表示され、利用できるようになります。
参考:
rJava - Low-level R to Java interface - RForge.net
JRI - Java/R Interface - RForge.net
http://www.gisos.de/blog/articles/5/jri-and-eclipse-first-steps
http://mithil-tech.blogspot.com/2009/11/r-and-java-jri-via-eclipse.html
Package rJava (PDF)
いー ドット ぷりんとすたっくとれーす: math/R をJava(Eclipse)から使う
http://blog.livedoor.jp/mcmaster/archives/51264133.html
rJava - Low-level R to Java interface - RForge.net
文献:
- 作者: 金明哲
- 出版社/メーカー: 森北出版
- 発売日: 2007/10/01
- メディア: 単行本(ソフトカバー)
- 購入: 36人 クリック: 694回
- この商品を含むブログ (64件) を見る
- 作者: 青木繁伸
- 出版社/メーカー: オーム社
- 発売日: 2009/04/01
- メディア: 単行本
- 購入: 10人 クリック: 123回
- この商品を含むブログ (34件) を見る
Rグラフィックス ―Rで思いどおりのグラフを作図するために―
- 作者: Paul Murrell,久保拓弥
- 出版社/メーカー: 共立出版
- 発売日: 2009/10/22
- メディア: 単行本
- 購入: 3人 クリック: 100回
- この商品を含むブログ (20件) を見る
R: The R Project for Statistical Computing
http://www.okada.jp.org/RWiki/
R言語 - Wikipedia