Jordan
Jordan

Reputation: 15

Rserve - Eclipse & Java

Hi I am setting up rserve based on the instructions on this website. http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/

However in eclipse I am getting an error when using 'eval'

             double d[] = c.eval("rnorm(10)").asDoubles();

error - 'The method eval(String) is undefined for the type RConnection'

The JARS have been correctly loaded into the build path and rserve is running, however I cannot figure out why only the eval function is causing an issue.

In addition to this the import of ...

   import org.rosuda.REngine.Rserve.RConnection;

causes an error - 'The import org.rosuda.REngine.Rserve.RConnection conflicts with a type defined in the same file'

does anyone have any idea why this is the case? Thanks

all imports :

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();
    }
}
}

Upvotes: 0

Views: 352

Answers (1)

KompjoeFriek
KompjoeFriek

Reputation: 3885

By using import org.rosuda.REngine.Rserve.RConnection; you are tying to make RConnection known in the local namespace. However, you already defined a class called RConnection locally.

Please rename your class RConnection, and you should be able to import org.rosuda.REngine.Rserve.RConnection.

Upvotes: 2

Related Questions