Java-R集成?

2022-08-31 17:37:12

我有一个Java应用程序,需要执行偏最小二乘回归。似乎没有PLSR的Java实现。Weka可能在某个时候有过类似的东西,但它不再在API中。另一方面,我发现了一个很好的R实现,它有一个额外的好处。它被我想要复制的结果的人使用,这意味着由于PLSR的实施方式不同,出现问题的可能性较小。

问题是:是否有足够好(且易于使用)的包,使Java能够调用R,将一些参数传递给函数并读回结果?我的另一个选择是让Java在进程中生成R,然后监视它。数据将被读取并写入磁盘。您会推荐两者中的哪一个?我是否错过了明显的第三个选项?


答案 1

我过去曾成功使用过两种选择。

断续器

  • 优点:可能性能更好。
  • 缺点:您必须配置一些环境变量和库,在Win / UNIX中有所不同。

断续器

  • 优点:易于设置,您不需要初始化R或链接任何R库,可以在不同的机器上运行。
  • 缺点:基于TCP / IP(服务器正在运行),没有来自R的回调。

其他替代方案我从未使用过 : RCaller


答案 2

邓肯·坦普尔·朗(Duncan Temple Lang)的作品:http://rss.acs.unt.edu/Rdoc/library/SJava/Docs/RFromJava.pdf

我对最强大的解决方案的猜测是JGR。JGR的开发人员有一个邮件列表Stats-Rosuda邮件列表Archive表示该列表截至2013年仍然活跃。

还有一些代码已经放在Googlecode上,这里有一个例子:http://stdioe.blogspot.com/2011/07/rcaller-20-calling-r-from-java.html


推荐