在javaweb应用程序中集成R
我知道有很多问题类似于这个问题,但大多数问题都超过2岁,实际上没有那么大的关联 我需要做的是将R环境完全集成到现有的java(实际上是scala)应用程序中。我不想要任何基于R的web解决方案,如Rook、Rapache等,服务器逻辑严格地发生在JavaLand中。我需要的是一种向解释器发送R命令的方法,让解释器运行它们并处理输出。更重要的是,我需要能够:在javaweb应用程序中集成R,java,r,scala,Java,R,Scala,我知道有很多问题类似于这个问题,但大多数问题都超过2岁,实际上没有那么大的关联 我需要做的是将R环境完全集成到现有的java(实际上是scala)应用程序中。我不想要任何基于R的web解决方案,如Rook、Rapache等,服务器逻辑严格地发生在JavaLand中。我需要的是一种向解释器发送R命令的方法,让解释器运行它们并处理输出。更重要的是,我需要能够: 以交互方式运行命令,而不仅仅是现成的R脚本 从已建立的图形包生成和处理图形 在JVM和R解释器之间来回传输原始数据 我知道。如果能收到任
要从Java本地调用R,需要JRI。要远程调用Java,可以使用RServe。如果您想处理图形,最好使用R中的一些东西,比如evaluate包。大多数语言桥不提供处理图形的特定功能,您需要在R级别上这样做
在您开始意识到使用跨语言桥进行科学计算的挑战和局限性之前,请先看一看。您将节省大量的麻烦。要从Java本地调用R,您需要JRI。要远程调用Java,可以使用RServe。如果您想处理图形,最好使用R中的一些东西,比如evaluate包。大多数语言桥不提供处理图形的特定功能,您需要在R级别上这样做
在您开始意识到使用跨语言桥进行科学计算的挑战和局限性之前,请先看一看。你可以省去很多麻烦。
你也可以考虑FastR,一个基于GRAALVM的R实现。这是一个来自Swing应用程序的屏幕截图,显示了R.
的格点图。 FastR可以像这样嵌入:Context ctx = Context.newBuilder("R").allowAllAccess(true).build();
ctx.eval("R", "sum").execute(new int[] {1,2,3});
您可以指示R脚本打印到给定的图形2D
对象:
ctx.eval("R", "function(g) awt(g, 400, 400)").execute(myGraphics2DObject)
ctx.eval("R", "grid.points(1:10)")
GitHub上有完整的示例:
关于FFSTR的更多信息:
您也可以考虑FastR,一个基于GRAALVM的R实现。这是一个来自Swing应用程序的截图,显示了R.
的格点图。 FastR可以像这样嵌入:Context ctx = Context.newBuilder("R").allowAllAccess(true).build();
ctx.eval("R", "sum").execute(new int[] {1,2,3});
您可以指示R脚本打印到给定的图形2D
对象:
ctx.eval("R", "function(g) awt(g, 400, 400)").execute(myGraphics2DObject)
ctx.eval("R", "grid.points(1:10)")
GitHub上有完整的示例:
关于FastR的更多信息:尽管您的问题超出了“如何在Java中集成R”,但它有助于链接一些相关问题。实际上,这是3个问题。我很想知道是否有人可以/如何处理上面的第2点。尽管你的问题超出了“如何在Java中集成R”,但它有助于将一些相关问题联系起来。实际上,这是3个问题。我很想知道是否有人/如何处理上述第2点。我非常感谢你的回答。我不会将这个问题标记为已回答,看看是否可以在这里收集到一些类似的有用和最新的答案以供参考。非常感谢你的回答。我不会将这个问题标记为已回答,看看是否可以在这里收集到一些类似的有用和最新的答案以供参考。非常感谢你。