JRI、Java 和 R:变量不会在 eval 之间累积
JRI, Java and R: variable is not accumulated between evals
在这个代码变量 xx
returns 0 而不是 20,不应该计算它并且它的值保持在 evals 之间吗?
String[] Rargs = {"--vanilla"};
Rengine re = new Rengine(Rargs, false, null);
if (!re.waitForR()) {
System.out.println("Cannot load R");
return;
}
re.eval("xx = 0");
for (int i=0; i<20; i++) {
re.eval("xx = xx + 1");
}
int xx = (re.eval("xx")).asInt();
System.out.println("xx="+xx);
这是结果:
xx=0
这是答案,需要用到asDouble()
:
double xx = (re.eval("xx")).asDouble();
在这个代码变量 xx
returns 0 而不是 20,不应该计算它并且它的值保持在 evals 之间吗?
String[] Rargs = {"--vanilla"};
Rengine re = new Rengine(Rargs, false, null);
if (!re.waitForR()) {
System.out.println("Cannot load R");
return;
}
re.eval("xx = 0");
for (int i=0; i<20; i++) {
re.eval("xx = xx + 1");
}
int xx = (re.eval("xx")).asInt();
System.out.println("xx="+xx);
这是结果:
xx=0
这是答案,需要用到asDouble()
:
double xx = (re.eval("xx")).asDouble();