3

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

我用谷歌搜索了一个例子:在此处输入代码

.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中加载这个函数来计算结果?

4

0 回答 0