R中的结果是字符或描述。我想从R得到结果,然后进入Java。我用RCaller
我用下面的代码是不行的。
code.clear();
code.addRCode("c1<-factor(describe(1:10)$counts)");
code.addRCode("c2<-as.numeric(as.character(c1))");
System.out.println(code.toString());
caller.setRCode(code);
caller.runAndReturnResultOnline("c2");
// String[] cc = caller.getParser().getAsStringArray("de");
double[] cc = caller.getParser().getAsDoubleArray("c2");
System.out.println(caller.getParser().getClass());
for (int i = 0; i < cc.length; i++) {
System.out.println(cc[i]);
}
}
但是我用这些下面是工作!
code.clear();
code.addRCode("c1<-factor(3.3:9.3)");
code.addRCode("c2<-as.numeric(as.character(c1))");
System.out.println(code.toString());
caller.setRCode(code);
caller.runAndReturnResultOnline("c2");
// String[] cc = caller.getParser().getAsStringArray("de");
double[] cc = caller.getParser().getAsDoubleArray("c2");
System.out.println(caller.getParser().getClass());
for (int i = 0; i < cc.length; i++) {
System.out.println(cc[i]);
}
}
为什么?如果我想获得字符或其他类型的数据从R到Java使用RCaller,我能做什么?
因为你使用getAsDoubleArray()返回一个double数据类型的数组