当前位置: 首页 > 面试题库 >

使用Eclipse和Rserve从Java调用R的简单程序

韩祯
2023-03-14
问题内容

我的应用程序必须执行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
        }

    }
}


 类似资料:
  • 问题内容: 我想从Java调用R脚本。我已经对该主题进行了google搜索,但是我看到的几乎所有结果都需要我向某些第三方库添加依赖项。任何人都可以向我展示一种在不添加任何依赖项的情况下完成同一件事的好方法吗? 我正在使用Windows计算机,因此也许我可以使用命令行来启动R(如果尚未打开)并运行特定的R脚本。但是我从未写过命令行代码(或从Java调用过),因此我需要代码示例。 我将使用命令行思路包

  • 我现在正在学习Android,在这方面我确实是个新手。我用的是Android版的Eclipse。我已经安装了Android 5.0.1 (API 21)下的所有文件和所有工具。然后我试着创建我的简单的“hello world示例”,但是我得到了很多错误。 以下是我的错误: 你能帮我一下吗?

  • 我正在尝试创建Java9的HelloWorld模块,下面给出了以下步骤。 右键单击项目(即com.hello) 右键单击源文件夹(即com.hello) 右键单击包(即com.hello) 右键单击HelloWorld 启动层初始化期间出错 JAVAlang.module。FindException:模块com。你好,没找到 PS:尝试了这个解决方案后,我的项目结构如下 注意:我还注意到一件事。在

  • 问题内容: 我对rpy2和R都是新手。 我基本上有一个R脚本script.R,其中包含函数,如rfunc(folder)。它与我的python脚本位于同一目录中。我想从Python调用它,然后启动其功能之一。我不需要此R函数的任何输出。我知道它必须非常基础,但是我找不到R脚本调用python代码的示例。我目前在Python中做什么: 我在源代码行中遇到错误: 我完全不明白我给它的参数不是字符串,而

  • 我必须写一个使用循环的程序,计算a和b之间所有奇数的和(包括),其中a和b是输入。 我做了这个(如下),它工作得很好,但我注意到它有一个问题:当我输入一个较大的数字,然后输入一个较小的数字时,它返回0,但当我首先输入一个较小的数字时,它工作得很好。有什么快速的解决办法吗?:)

  • 问题内容: 我有一个使用Maven作为构建工具的Flex / Java Web应用程序。当前,如果要调试整个应用程序,则可以使用Maven创建WAR文件,并使用cargo插件部署WAR文件并启动应用程序服务器。然后,我启动Eclipse(使用Flash Builder 4)Flex“ Web应用程序”调试配置并开始调试。 一切都很好,但是我正在寻找一种使它更快的方法。我希望能够编辑Flex代码并立