我的应用程序必须执行R操作,例如:
m = matrix(sample(0:1,100, rep=T),ncol=10)
结果应可用于Java应用程序。
Rserve package将R桥接到其他语言,因为它充当TCP/IP服务器。我已经阅读了该网站,但不知道如何制作可以使用Rserve的最简单的应用程序。
制作使用Rserve从Java执行R命令的简单Eclipse应用程序需要什么步骤?
最佳答案
下载部分有Rserve的二进制版本(www.rforge.net/Rserve/files/我具有R 2.13和Windows xp版本,因此我需要下载Windows二进制:Rserve_0.6-8.zip(541.3kb,已更新:2012年4月18日星期三07:00:45))。将文件复制到包含R.DLL的目录中。从CRAN安装Rserve之后
install.packages("Rserve")
在R中(我有RStudio-方便的东西:Download RStudio IDE)。
从R内部启动Rserve,只需键入
library(Rserve)
Rserve()
请在任务管理器中运行-Rserve.exe。
在Eclipse中创建Java项目后,在该项目下创建一个名为lib的目录。糊
2个jar在这里RserveEngine.jar和REngine.jar(www.rforge.net/Rserve/files/)。不要忘记在Java项目的Properties中添加此jar。在新的类(class)代码中:
import org.rosuda.REngine.*;
import org.rosuda.REngine.Rserve.*;
public class rserveuseClass {
public static void main(String[] args) throws RserveException {
try {
RConnection c = new RConnection();// make a new local connection on default port (6311)
double d[] = c.eval("rnorm(10)").asDoubles();
org.rosuda.REngine.REXP x0 = c.eval("R.version.string");
System.out.println(x0.asString());
} catch (REngineException e) {
//manipulation
}
}
}