2013-10-01 41 views
0

我想创建一个java小程序,它接收各种文件并对它们运行统计测试。用户将选择一个文件并按下相应的按钮进行统计测试。所有的统计测试都将在R中编码。有没有办法“桥接”R和Java?有没有办法在Java applet中使用R?

+1

你可以在任何* Java应用程序中运行R脚本(代码..whatever)。如果是这样,则可能可以在applet中运行它们。重新使用桌面应用程序applet本身。使用[JWS](http://stackoverflow.com/tags/java-web-start/info)启动将更易于部署,并提供更好的用户体验。 –

回答

0

您正在寻找的功能类型在R中很容易找到。由RStudio创建的Shiny package完全符合您的需求:为R提供Web界面,包括简单的GUI元素。使用Shiny的优势在于它能够处理所有细节,让您专注于分析。它从字面上花了我2个小时来安装Shiny并创建我的第一个Web应用程序。

声明:我没有任何与RStudio的关系,我只是一个快乐的用户:)。

0

有没有办法“桥接”R和Java?

当然有。您可以使用JRI

这里是一个JRI爪哇与我在一个previous answer条件是R的例子(通过双阵列和具有R-总和它):

// Start R session. 
Rengine re = new Rengine (new String [] {"--vanilla"}, false, null); 

// Check if the session is working. 
if (!re.waitForR()) { 
    return; 
} 

re.assign("x", new double[] {1.5, 2.5, 3.5}); 
REXP result = re.eval("(sum(x))"); 
System.out.println(result.asDouble()); 
re.end(); 

上面基本上是R中这样做的当量:

x <- c(1.5, 2.5, 3.5) 
sum(x) 

注:如果您使用Eclipse和JRI,我强烈建议使用this plugin进行设置。


或者,您只需创建使用RScript.exe从Java执行的R脚本。例如:

Rscript my_script.R 

您将在互联网上找到大量有关如何从Java执行命令行命令的信息。我不太了解它给你一个例子。

相关问题