我试图通过Rserve使用Java代码来调用R。我想使用REXPGenericVector存储和传递数组为R:在c.assign("x",v);
如何将双元素添加到RList?
RList r = new RList();
r.add(new Double(1.0));
REXPGenericVector v = new REXPGenericVector(r);
// make a new local connection on default port (6311)
RConnection c = new RConnection();
// assign data to variable x
c.assign("x",v);
System.out.println("Printing out v:"+v);
然而,错误消息显示出来:
java.lang.ClassCastException: java.lang.Double cannot be cast to org.rosuda.REngine.REXP
at org.rosuda.REngine.RList.at(RList.java:103)
at org.rosuda.REngine.Rserve.protocol.REXPFactory.getBinaryLength(REXPFactory.java:489)
at org.rosuda.REngine.Rserve.RConnection.assign(RConnection.java:272)
at com.xypress.Test.main(Test.java:29)
如何添加双或绳或其它类型的数据到RList?
在此先感谢。
我对'rserve'没有经验,但基于文档,它看起来像你正在做的一切正确。要么我错过了一些东西,或者有更多的问题比发布的代码...再次,我不熟悉这个库,但我能想到的唯一的事情是,无论出于何种原因,'REXPGenericVector'不工作(正如预期的那样使用“Double”)。也许你应该尝试另一种'REXP'? –