【发布时间】:2010-11-28 20:16:15
【问题描述】:
rjava 是连接 R 到 Java 的唯一方法吗?我问是因为网页末尾有免责声明:
这个接口使用Java反射 API找到正确的方法,所以它 慢得多,可能不正确 (适用于简单的例子,但可能不是 对于更复杂的)。现在它的 不鼓励在程序中使用,因为它 将来可能会改变。
这有点令人担忧。你如何解决这个问题?我知道 Rweka 有一个独立的界面,所以我可能会研究那个包,但可能很多 R 用户已经经历了这些痛苦。
【问题讨论】:
rjava 是连接 R 到 Java 的唯一方法吗?我问是因为网页末尾有免责声明:
这个接口使用Java反射 API找到正确的方法,所以它 慢得多,可能不正确 (适用于简单的例子,但可能不是 对于更复杂的)。现在它的 不鼓励在程序中使用,因为它 将来可能会改变。
这有点令人担忧。你如何解决这个问题?我知道 Rweka 有一个独立的界面,所以我可能会研究那个包,但可能很多 R 用户已经经历了这些痛苦。
【问题讨论】:
我认为该免责声明仅适用于您使用 $ 运算符访问您的 java 对象的情况。只要您坚持使用 .jcall 函数,就不会产生开销。
就使用 rJava 的经验而言,我发现它的工作原理与宣传的完全一样,而且对于我的包 (farmR),它没有引起任何性能问题。不过,我并没有对 java 进行大量调用,也没有使用任何 java GUI 工具包。
【讨论】:
它不是唯一的,因为Omegahat 项目也有RSJava 包。但是,与 Omegahat(实际上就是 Duncan Temple Lang)的许多其他出色创新一样,这个可能不会那么容易或可靠地构建。
另一方面,rJava 包被近三十个其他包使用
CADStat、容器、推断器、JGR、 RFreak、RImageJ、RJDBC、RLadyBug、 aCGH.Spline, ant, arulesNBMiner, colbycol,cshapes,dynGraph,farmR, gWidgetsrJava, glmulti, 你好JavaWorld,iplots,rSymPy,rcdk, rcdklibs, sagnostics, spcosa, RKEA, RWeka、Snowball、openNLP、wordnet
我认为这是完全的认可。
【讨论】:
我是 Rweka 用户,我可以告诉你它的速度非常快,在 r 环境中使用它的功能时,它的性能优于单独的 weka。我认为 R 包有一种非常特殊的方式来集成到语言 java 库中,但是这些库需要准备好允许这样做。为了能够进行适当的集成,您需要进行大量研究,以了解如何使事情适当地适应。我建议您阅读 R 附带的文档,其中详细介绍了编写 NEW LIBRARIES 库的最佳实践。
【讨论】: