RとJava

SJava

Rとjavaをつなげるパッケージ.非常に有用なパッケージだと思われますが インストール,運用ともに情報が少ないようです. 

インストール

linux版

Fedora core 1上で R-1.9.0にインストールしてみました.まだ,classpathの設定でつまって動きませんが,Vine では,swing,awt以外はうごいたので,じきにうまくいくでしょう.riki 2004-04-25 (日) 23:21:22

CLASSPATHの設定とLD_LIBRARY_PATHの設定をしたら, とりあえず下記テストコードまではうまくいきました.riki 2004-04-26 (月) 17:45:08

下記を実行してSJavaのインストールする。この時、-cを忘れないようにする。-cを忘れると、必要なシンボリックリンクができず、JavaからRを呼ぶときに失敗してしまう。

>R INSTALL -c SJava_0.67-3.tar.gz

例えば, .bash_profileに下記を追記

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/R/library/SJava/libs:/usr/java/j2sdk1.4.2_04/jre/lib/i386:/usr/java/j2sdk1.4.2_04/jre/lib/i386/client

例えば ,.bash_profileに下記を追記

SJAVA=/usr/lib/R/library/SJava
CLASSPATH=${CLASSPATH}:/usr/java/j2sdk1.4.2_04/lib:${SJAVA}:${SJAVA}/Jars/Environment.jar:${SJAVA}/Jars/antlr.jar:${SJAVA}/Jars/jas.jar:${SJAVA}/Jars/jhall.jar:.
>library(SJava)
>.JavaInit()
>.Java("java.lang.System", "getProperty", "java.class.path")
>names(.Java("java.lang.System", "getProperties"))

windows版

MacOS X版

Simon's PagesにSJavaをMacOS Xで動かすパッチがあります。 ここから SJava_0.65-X.tar.gzをもらってきて、(R-1.9.0なら)

sudo /Library/Frameworks/R.framework/Resources/bin/R INSTALL -c ~/Desktop/SJava_0.65-X.tar.gz

で普通にインストールできます。 ただし、Apple JavaのDeveloper Previewとかいろいろ試している人は、

/System/Library/Frameworks/JavaVM.framework/Headers/jni.h

のシンボリックリンクの実体がなくなってたりしますので、ADCなどから適宜DeveloperバージョンのJavaをとってきてインストールするなどして実体がある状態で実行しましょう。

なお、javacなどを使うときのCLASSPATHは、バージョンが若干古いため、

 SJAVA=/Library/Frameworks/R.framework/Resources/library/SJava/
CLASSPATH=.:${SJAVA}:${SJAVA}/org/omegahat:${SJAVA}/org/omegahat/Jars/Environment.jar:${SJAVA}/org/omegahat/Jars/antlr.jar:${SJAVA}/org/omegahat/Jars/jas.jar:${SJAVA}/org/omegahat/Jars/jhall.jar:

とかになります。

一応、VectorとかSystem.outとかは正常に動いているようですが、awt.Windowとか、awt.Frameのコンストラクタを呼ぶと固まります...(Java 1.4.2)。 RJavaDeviceがうまく動けば日本語が通るかもしれないと期待したんですが...

javaからRを動かす

サンプルプログラム (Q&Aに高階が書いたものを転載)

import org.omegahat.R.Java.*;

public class REvalSample {
   public static void main(String [] args) {
       String [] rargs = {"--slave", "--vanilla"};

       System.out.println("Sample program to call R engine from Java");
       ROmegahatInterpreter interp
           = new ROmegahatInterpreter(ROmegahatInterpreter.fixArgs(rargs),
                                      false);

       REvaluator e = new REvaluator();
       
       Object val = e.eval("x <- sin(seq(0, 2*pi, length=30))");
       val = e.eval("x * 2.0");
            
       if (val != null) {
           double[] objects = (double[])val;
           for (int i=0; i<objects.length; i++) {
               System.err.println("("+i+") " + objects[i]);
           }
       }
   }
}

サンプルプログラムのコンパイル

CLASSPATHが正しく設定されていることを確認して、javacでコンパイル。

javac REvalSample.java

サンプルプログラムの実行

SJavaのインストール先が /usr/local/lib/R/library/SJava の場合は以下の様に入力する。

/usr/local/lib/R/library/SJava/scripts/RJava --class REvalSample

Eclipse での実行


Java Beans


Rからjavaを動かす

R Graphics Device using Java

ダウンロード

インストール


rJava:rJava - Low-level R to Java interface 旧サイト

利用ツール・パッケージ

リンク

JRI(Java/R Interface)

プログラミングの例

利用アプリ

SJava または rJava/JRI を利用しているパッケージ

iPlots

>library(iplots) # iplots パッケージのロード
>data(iris)
>attach(iris)
>iplot(Sepal.Width, Petal.Width)
iplots_graph_ex1.png

図 iplots 実行例

R AnalyticFlow

StatET: R 用 Eclipse プラグイン コンソール出力。

ant: Version of ant specific to R

JavaGD

JGR(Java Gui for R)

R 用汎用GUI(iplots, rJava, JavaGD を利用)

Mac 版は,http://www.rosuda.org/JGR/1.0/CRAN/JGR-1.0.dmg

Mac OS X 10.3 (Panther) download:
   - binary for CRAN release of R 2.0.0: JGR-1.0.dmg (ca. 2.3MB, updated 2004/10/18)

 CRANよりソースが入手可能。

Linux版のインストール

インストールにはヘッダファイルが必要なので、j2reではなくj2sdkをインストールしておく。環境変数JAVA_HOMEとPATHが正しくセットされているとする(他のJavaアプリが正しく動作していればおそらくOK)。スーパーユーザ権限でRを起動し、

> install.packages("JavaGD",contriburl="http://www.rosuda.org/R/")
> install.packages("rJava",contriburl="http://www.rosuda.org/R/")
> install.packages("JGR",contriburl="http://www.rosuda.org/R/")

と入力する。

JGRで日本語

mailing list(Developer 向け) 要登録

利用パッケージ

CADStat: Provides a GUI to several statistical methods for biological inferences

Deducer: An intuitive graphical data analysis system for use with JGR.

Rserve

 Java より R を呼び出す。CRAN より入手可。

利用アプリ

Biocep Computational Open Platform Ecosystem

 上記の R と Java の連携技術の集大成のようなもの

RWebServices:Expose R functions as web services through Java/Axis/Apache

renjin JVM-based Interpreter for the R Language for Statistical Computing

JDBC

RJDBC

RpgSQL: DBI/RJDBC interface to PostgreSQL Database

JRuby

Jython

joris - Java ongoing R infrastructure set

rscript - Java to R scripting interface

JavaFX

 いずれはなにかがある?

関連リンク


*1 JGR 内では可能

添付ファイル: filefor-select.jpg 1817件 [詳細] fileiplots_graph_ex1.png 3970件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:17