如何在rJava包中使用toJava在Java中使用R函数

时间:2013-03-07 21:35:41

标签: java r

我有一个用R编写的长函数,我想用Java调用这个函数。现在我使用JRI链接R和Java。如果我只使用eval(XX),我可以在java环境中从R获得返回。但由于我的功能很长,评估每一行都是不切实际的。如何使用toJava()生成引用以及如何在java中使用它?

我用Google搜索了一个例子:在这里输入代码

.jinit()
  # requires JRI and REngine classes
  .jengine(TRUE)
  f <- function() { cat("Hello!\n"); 1 }
  fref <- toJava(f)
  # to use this in Java you would use something like:



 # public static REXP call(REXPReference fn) throws REngineException, REXPMismatchException {
  #  return fn.getEngine().eval(new REXPLanguage(new RList(new REXP[] { fn })), null, false);
  # }
  # .jcall("Call","Lorg/rosuda/REngine/REXP;","call", fref)

我可以在R环境中创建Fref,但是如何在Java中引用它

例如: R中的函数是: f= function (){a=c(1,2,3); b=c(2,3,4); return (a+b)}    如何在Java中加载此函数来计算结果?

0 个答案:

没有答案