Skip to content

Import R-output into Java

7 messages · Maxl18, Romain Francois, Thomas Roth (geb. Kaliwe)

#
Hello,
I want to import R-output via Rserve to Java, especially for the function
ctree from the package party.
Rserve is working properly.

Yet, I only get the predictions with the Java code

   try{
       RConnection c = new RConnection();
       ...
       c.voidEval("modell <- ctree(...)");
       REXP y = c.eval("nodes(modell,1)[[1]]$prediction");
       ...
   }catch(Exception e){}

When I try to get the whole text with

   REXP z = c.eval("nodes(modell,1)[[1]]");
   System.out.println(z);

I get something like   
org.rosuda.REngine.REXPGenericVector at 119c082+[10]named

But I want the text which is printed in R.

What can I do?
Thanks, Max


Once again:
It`s clear to get the result in R but I don`t know hoe to get the R-output
into Java (or into a file, i.e. .txt)
#
Maxl18 wrote:
This is what the toString method from REXP returns, you need use other 
REXP methods to extract what you are looking for:
http://rforge.net/Rserve/doc/org/rosuda/REngine/REXP.html#asStrings()

Romain
#
#I used sink
?sink


#Thomas



Maxl18 schrieb:
#
Thanks, sink was exactly the function I searched.
It properly works in R, but when I try to launch it from Java, the file is
created but never written any output...

con.voidEval("test.txt");   // file is created
con.voidEval("1+1");        // nothing is written into the file
con.voidEval("sink()");

Where is my mistake?
Cheers, Max
Thomas Roth (geb. Kaliwe) wrote:

  
    
#
Hi,

try this instead:

con.voidEval("sink(test.txt)");
con.voidEval("cat(1+1)");
con.voidEval("sink()");

Romain
Maxl18 wrote:
#
Ooops, I meant this :

con.voidEval("sink('test.txt')");
con.voidEval("cat(1+1)");
con.voidEval("sink()");
Romain Francois wrote:

  
    
#
Thanks,
now it works!

Max
Romain Francois-2 wrote: