您好,我正在根据本网站上的说明设置储备金。
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

09-05 00:45