您好,我正在根据本网站上的说明设置储备金。
http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/
但是在eclipse中,使用“ eval”时出现错误
double d[] = c.eval("rnorm(10)").asDoubles();
错误-'未为RConnection类型定义方法eval(String)'
JARS已正确加载到构建路径中,并且rserve正在运行,但是我无法弄清楚为什么只有eval函数会引起问题。
除此之外...
import org.rosuda.REngine.Rserve.RConnection;
导致错误-'导入org.rosuda.REngine.Rserve.RConnection与在同一文件中定义的类型冲突'
有谁知道为什么会这样吗?谢谢
全部进口:
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class RConnection {
public int[] mean(String a[]) {
setupR();
return null;
}
public void setupR(){
try {
/* Create a connection to Rserve instance running
* on default port 6311
*/
RConnection c = new RConnection();// make a new local connection on default port (6311)
double d[] = c.eval("rnorm(10)").asDoubles();
org.rosuda.REngine.REXP x0 = c.eval("R.version.string");
System.out.println(x0.asString());
} catch (RserveException e) {
e.printStackTrace();
} catch (REXPMismatchException e) {
e.printStackTrace();
}
}
}
最佳答案
通过使用import org.rosuda.REngine.Rserve.RConnection;
,您可以在本地名称空间中使RConnection
成为已知。
但是,您已经在本地定义了一个名为RConnection
的类。
请重命名您的课程RConnection
,您应该能够导入org.rosuda.REngine.Rserve.RConnection
。