Renjin uses the javax.script interface, thanks to which you can interact with the R environment. See the documentation here: http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/
To set variables in the global R environment, you can use the put () method. Here are some examples:
engine.put("x", 4); engine.put("y", new double[] { 1d, 2d, 3d, 4d }); engine.put("z", new org.renjin.sexp.DoubleArrayVector(1,2,3,4,5)); engine.put("obj", new HashMap());
Renjin will implicitly convert primitives, arrays of primitives, and java.lang.String instances to R. objects. Java objects will be wrapped as R external objects.
From R code, Renjin allows you to manipulate Java objects using the $ operator, for example:
obj$put("a", 1) obj$put("b", 2) print(obj$size()) print(obj$get("b"))
You can also provide your own implementations of R objects by extending classes in the org.renjin.sexp package. For instance:
public class MyDoubleVector extends DoubleVector { public double getElementAsDouble(int index) {
source share