1、R語言可以通過按照rJava包,然後調用Java對象
2、Java可以導入Jri包,調用R語言腳本。
Java調用R語言兩種方式。
1、Reverse方式
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、JRI方式
參見JRI示例代碼rtest
3、集成過程中可能遇到的坑
環境變量配置
必須配置和系統對應的32位或者64位環境變量,分別位R_HOME,JRI_HOME,R_HOME\bin,JRI_HOME\x64
Rengine類NOTFOUND異常,需要檢查Rengine是否添加到工程class path下。fone.components下可能需要在自己的plugin.xml文件中配置,因爲重寫了PluginClassLoader。
R腳本異常輸出
R腳本中支持tryCatch(),可以獲取對應的異常,我們此處通過tryCatch獲取異常信息,並且輸出到日誌文件中,格式如下:
output<-tryCatch({
express
},error=function(err){write.table(paste(err,""), file=logFileName, col.names=FALSE)})
R語言中的數據轉換
R語言中一般可以通過as.的形式進行數據轉換,如:as.numeric(),as.Date, data.as.dataframe()
R語言中的時間序列
R語言中的時間序列,目前只支持日期格式“yyyy-mm-dd”或者“yyyy-mm”格式,即時間序列中的date必須是時間類型,單獨的yyyy(年)不行。
R語言中的時間序列預測
時間序列預測,一般用兩種預測模型(ARIMA, Holt-winters)。(此部分待補充)(預測分解)
ARIMA使用方式:
datatsfc<-auto.arima(datas)#自動時間序列模型(水平、趨勢、季節自動識別調整)
datatsfc2<-forecast(datatsfc,h=forecastPeriodNums)#ARIMA模型預測
Holt-winters:(區分加法模型和乘法模型,即是否考慮季節性趨勢)
datatsfc<-HoltWinters(datas)
datatsfc2<-forecast:::forecast.HoltWinters(datatsfc, h=forecastPeriodNums)
預測模型驗證
R語言中提供了accuracy()函數對預測結果進行檢查。