我有这个构造函数:
public Revaluator(File model,PrintStream ps) {
modelFile=model;
rsession=Rsession.newInstanceTry(ps, null);
rsession.eval("library(e1071)");
rsession.load(modelFile);
}
我想加载一个模型并用它进行预测。Rsession.newInstanceTry(ps, null);
始终是同一个会话的问题,所以如果我加载另一个模型,例如:
Revaluator re1=new Revaluator(new File("model1.RData"),System.out);
Revaluator re2=new Revaluator(new File("model2.RData"),System.out);
re1 和 re2 都使用相同的模型,因为 var name 是model
,所以只加载了最后一个。
评估功能:
public REXP evaluate(Object[] arr){
String expression=String.format("predict(model, c(%s))", J2Rarray(arr));
REXP ans=rsession.eval(expression);
return ans;
}
//J2Rarray just creates a string from the array like "1,2,true,'hello',false"
我需要加载大约 250 个预测变量,有没有办法将 Rsession 的每个实例作为一个新的分离 R 会话?