使用Eclipse和Rserve从Java调用R的简单程序
问题内容:
我的应用程序必须执行R操作,例如:
m = matrix(sample(0:1,100, rep=T),ncol=10)
结果应可用于Java应用程序。
由于Rserve包充当TCP /
IP服务器,因此Rserve包将R桥接到其他语言。我已经阅读了该网站,但不知道如何制作可以使用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-方便的地方:下载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。在新的班级代码中:
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
}
}
}