1. 程式人生 > 其它 >java呼叫R&Rserve的使用

java呼叫R&Rserve的使用

技術標籤:RJAVAjava

  1. 第一次接觸R這個統計的資料的程式,使用java呼叫的,剛聽到的時候一頭霧水,在研究了10幾天開始有點頭緒就開始了寫部落格是為了記錄下次遇到就不用跳坑了。

1.首先使用java呼叫R的時候的先下載兩個包,兩個包是和R程式聯絡的,這個R官方是有可以下載的百度也有。

然後,如果是剛接觸建議下載個R程式先把給的程式碼在R程式跑一次,之後開始在java開始通訊。

  RConnection connection = null;//連線
			    try {
			        connection = new RConnection();
			        connection.eval("library(readxl)");
			        connection.eval("stroke<-read_excel('D:example.xlsx'")");
			        connection.eval("'")");//空出來的這個是你把人家給的程式碼直接複製上去就可以
			        connection.eval("jepg('D:test.jpg)");
			        connection.eval("print(ggsurvplot(km))");//如果沒有這一步圖片就會生成失敗
			        connection.eval("dev.off()");//關閉畫板
			    } catch (RserveException e) {
			        e.printStackTrace();
			    } finally {
			        if (connection != null){
			            connection.close();
			        }
			    }
				return null;**

上面程式碼僅供參考,要以自己的為準,這樣圖片就可以生成啦。

如果部署在linux出現生成圖片失敗需要加兩個包。

如果我的寫的看不明白的話可以參考

2、使用示例:

  private static void test() {
    RConnection connection = null;
        try {
            //獲取連線
            connection = RConnectionPoolUtil.getConnection();
            //在D盤生成test.jpg圖片
            connection.eval("jpeg('D:/test.jpg')");
            connection.eval("x<-c(1,2,3,4,5,6,)");
            connection.eval("y<-c(1,2,3,4,5,6)");
            connection.eval("plot(x,y)");//繪圖
            connection.eval("dev.off()");//關閉畫板
        } catch (RserveException e) {
            e.printStackTrace();
        } finally {
            //釋放連線
            RConnectionPoolUtil.release(connection);
        }
  }
 

如果還有不懂的歡迎私信我!