當前位置:首頁 » 編程語言 » java調用r

java調用r

發布時間: 2024-05-28 04:03:34

⑴ 怎麼安裝r語言中的rjava

WINDOWS版的配置
第一步:安裝rJava和jdk

install.packages("rJava")
配置好java

第二步:設置環境變數 ,涉及java調用R(我的電腦右鍵-屬性-高級設置-環境變數)

CLASSPATH=D:\soft\R-3.0.1\library\rJava\jri;
PATH=D:\soft\R-3.0.1\bin\x64
R_HOME=D:\soft\R-3.0.1

第三步:D:\soft\R-3.0.1\library\\rJava\jri的3個類包, 復制黏貼,
放到C:\Program Files\Java\jdk1.7.0_05\lib下面
JRIEngine.jar
JRI.jar
REngine.jar

即可實現 library(rJava)

⑵ java語言能調用R語言嗎

可以。
(一) 在R里下載「Rserve」包,並安裝
安裝好後,
運行如下命令啟動「Rserver」

> library(Rserve)
> Rserve()

Starting Rserve...
"D:\PROGRA~1\R\R-30~1.1\library\Rserve\libs\i386\Rserve.exe"
>

(二) 建立java工程,導入必要的包,寫出測試用例
目錄結構如下(標紅色的是需要的):

Test.java 內容
package com.rTest;

import org.rosuda.REngine.REXP;
import org.rosuda.REngine.Rserve.RConnection;

public class Test {
public static void main(String[] args) {
try {
RConnection c = new RConnection();
REXP x = c.eval("R.version.string");
System.out.println(x.asString());
} catch (Exception e) {
e.printStackTrace();
}
}
}

運行即可
2.3 可能出現的錯誤
2.3.1 Connection refused: connect
org.rosuda.REngine.Rserve.RserveException: Cannot connect: Connection refused: connect
at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:88)
at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:60)
at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:44)
at com.rTest.Test.main(Test.java:9)

這是由於「Rserve」 伺服器沒有啟動起來的原因,試試在R內運行如下語句

> library(Rserve)
> Rserve()

⑶ 怎樣通過Java調用自己編寫的R函數

Java調用R,就是使用JRI.jar中的Api,執行一條R語言命令,當然首先你要了解R語言的語法。x0dx0a1.JRI中主要的APIx0dx0aRengine R引擎,通過它進行R語言的啟動、運算、畫圖、關閉等功能。x0dx0a一個銀大線程只能實例化一次,推薦使用單例模式。x0dx0a實例化代碼:x0dx0aRengine engine = new Rengine(null,false,null);x0dx0aRengine.versionCheck() //R版本校驗,返回true:版本校驗通過 返回false:版本校驗未通過x0dx0aengine.waitForR() //R載入校驗,返回true:載入成功 返回false:載入失敗x0dx0aengine.end() /好脊/結束R,在後續沒有調用R的情況下使用,否則R將退出,不能繼續使用R。x0dx0ax0dx0a2.REXPx0dx0aR計算結果表達式x0dx0aREXP rexp = engine.eval_r(String str) //執行R命令,返回結果REXPx0dx0arexp.asInt() rexp.asDouble() rexp.as.. //將REXP轉成java類型x0dx0aengine.assign(String name,double d) //定義R變數,name為R中變數的名字x0dx0ax0dx0a以上大概了解了JRI的基本API,下鋒襪豎面寫個簡單的例子。x0dx0a//求n個數的最大值x0dx0aRengine engine = new Rengine(null,false,null);x0dx0aint[] arr = new int[]{-1,2,1,-3,5,4,-2};x0dx0aengine.assign("x",arr);x0dx0aREXP rexp = engine.eval_r("max(x)");x0dx0aint max = rexp.asInt();x0dx0aSystem.out.println(max);x0dx0aengine.end();

熱點內容
安卓手機hd怎麼消除 發布:2024-06-22 21:15:14 瀏覽:535
sql剔除重復 發布:2024-06-22 21:05:59 瀏覽:313
c語言實現原理 發布:2024-06-22 21:05:44 瀏覽:962
安卓什麼時候上架的 發布:2024-06-22 20:56:46 瀏覽:425
javadoc 發布:2024-06-22 20:31:59 瀏覽:847
資料庫動態查詢 發布:2024-06-22 20:19:18 瀏覽:950
linuxtab鍵 發布:2024-06-22 20:16:28 瀏覽:485
解壓成光碟0 發布:2024-06-22 19:37:20 瀏覽:1000
keil4編譯輸出 發布:2024-06-22 19:37:20 瀏覽:799
方舟怎麼設置私人伺服器 發布:2024-06-22 19:37:18 瀏覽:113