R與Java的結合
如果有人需要用java寫出一個可以應用R的介面
我在這裡先提供如何用java成功的call R,其中有很多眉眉角角,而R的文件也不是很清楚,這是我的好朋友郭董幫我試出來的,放在這裡供鄉民參考參考
Step 1. 先把java的開發環境都設定好,先裝好JDK及IDE,例如Netbean,設好環境變數等
Step 2.請先到rjava的網站下載 3個最重要的jar檔案http://www.rforge.net/JRI/files/,請記得3個.jar的檔都要下載回來放在同一個資料夾
Step 3. 接下來的步驟非常重要,如果你尿急的話請先去上完廁所再回來,因為這個設定關係到是否可以在java裡直接下r的指令,並產生出結果,首先,請到控制台\所有控制台項目\系統\進階系統設定\進階\環境變數,我們要加入 2個路徑,第一個是r.dll的路徑,這是你安裝好R之後一定會有的,就在你的R目錄下面(大部份的人是C:\Program Files\R\R-2.15.1\bin\i386 or x64)請把這一條加入環境變數裡,如下圖(請注意,你的路徑有可能不一樣,端看你的R安裝在那裡)
import org.rosuda.JRI.Rengine;
public class RJava
{
public static void main (String[] args)
{
// 宣告一個Rengine
Rengine re=new Rengine (new String [] {"--vanilla"}, false, null);
if (!re.waitForR())
{
System.out.println ("Cannot load R");
return;
}
// 計算3*5並印出結果
System.out.println (re.eval ("x<-3*5").asDouble ());
// 結束
re.end();
}
}
我在這裡先提供如何用java成功的call R,其中有很多眉眉角角,而R的文件也不是很清楚,這是我的好朋友郭董幫我試出來的,放在這裡供鄉民參考參考
Step 1. 先把java的開發環境都設定好,先裝好JDK及IDE,例如Netbean,設好環境變數等
Step 2.請先到rjava的網站下載 3個最重要的jar檔案http://www.rforge.net/JRI/files/,請記得3個.jar的檔都要下載回來放在同一個資料夾
Step 3. 接下來的步驟非常重要,如果你尿急的話請先去上完廁所再回來,因為這個設定關係到是否可以在java裡直接下r的指令,並產生出結果,首先,請到控制台\所有控制台項目\系統\進階系統設定\進階\環境變數,我們要加入 2個路徑,第一個是r.dll的路徑,這是你安裝好R之後一定會有的,就在你的R目錄下面(大部份的人是C:\Program Files\R\R-2.15.1\bin\i386 or x64)請把這一條加入環境變數裡,如下圖(請注意,你的路徑有可能不一樣,端看你的R安裝在那裡)
然後再把.jar存放的路徑加進去環境變數裡,請記得前後一定要用;分隔(請注意,你的路徑有可能不一樣,端看你將.jar放在哪裡)
Step 4. 打開Java IDE測試一下,如果跑出 15,那就代表你可以成功的在java裡call R了
import org.rosuda.JRI.Rengine;
public class RJava
{
public static void main (String[] args)
{
// 宣告一個Rengine
Rengine re=new Rengine (new String [] {"--vanilla"}, false, null);
if (!re.waitForR())
{
System.out.println ("Cannot load R");
return;
}
// 計算3*5並印出結果
System.out.println (re.eval ("x<-3*5").asDouble ());
// 結束
re.end();
}
}
PS. 在寫這一篇的過程中,發現還有一個善心人士開發了另外一個可以在java裡call R的package叫做Rcaller,讓我試試看之後再分享給各位鄉親
留言
張貼留言