我有一个R代码,它使用glmer方法创建广义线性混合效果模型,我需要将此代码移植到java。
是否有一个提供此功能的库?
我试过谷歌等但是可以找到任何直接有用的东西。
有没有办法使用Apache Math库实现混合效果回归?
我仍然在学习混合效果模型的概念,但还没有完全理解这些概念。我在这里找到了一个提供多元回归的类http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/stat/regression/MultipleLinearRegression.html,我想我可以用它实现我需要的东西。
有没有人尝试过类似的事情?
答案 0 :(得分:1)
您可以使用rJava包。它要求在机器上安装R,然后,它允许从java调用R代码。
要使用它,您需要先安装它install.packages('rJava')
。
之后,您需要将以下内容添加到R
<R_HOME>\bin\i386;
<R_HOME>\library\rJava\jri\i386;
在java中你需要添加来自
的所有jar<R_HOME>\library\rJava\jri
到你的班级路径。
之后你可以调用rJava
Rengine eng = new Rengine(new String[] { "--no-save" }, false, null);
String[] colNames = {"col1", "col2", "col3"};
String[] col1 = {"a1", "a2", "a3", "a4"};
String[] col2 = {"b1", "b2", "b3", "b4"};
int[] col3 = {1, 2, 3, 4};
REXP mydf = REXP
.createDataFrame(new RList(
new REXP[] {
new REXPString(col1),
new REXPString(col2),
new REXPInteger(col3)},
colNames));
//generate a dataframe inr engine
eng.assign("myDataFrame", mydf);
//Calculate MEAN of vector using R syntax.
eng.eval("meanVal=mean(myDataFrame$col3)");
//Retrieve MEAN value
double mean = eng.eval("meanVal").asDouble();