r - 在 java Eclipse 中使用 JRI 时如何导入 R 库?

标签 r java

在我的java项目中,我需要计算一个置信区间,这很难自己写一个代码。所以我决定使用R statistics中的一种方法,将计算结果转移到我的java项目中。为此,我选择 JRI 并在我的 .java 文件中导入 Rengine 和 REXP:

import org.rosuda.JRI.REXP;  
import org.rosuda.JRI.Rengine;

现在,问题来了。我想导入“stats4”库以便可以使用 mle() 函数,我在 .java 文件中编写了以下代码:

Rengine re = new Rengine(new String [] {"--vanilla"}, false, null);  
re.eval("library(stats4)"); 

但是,我发现 stats4 从未被导入过!其实我们在R语言中导入这个库的时候,可以这样写:

library("stats4")  

由于我是在 java 中使用 JRI 的新手,所以我不知道如何修复它。

最佳答案

请将此输入到您的 Java 代码中:

System.out.println("R_HOME =" + System.getenv("R_HOME"));
  String path =System.getenv("R_HOME") + "\\library" ;
   File folder = new File(path);
  File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
      if (listOfFiles[i].isFile()) {
        System.out.println("File " + listOfFiles[i].getName());
      } else if (listOfFiles[i].isDirectory()) {
        System.out.println("Directory " + listOfFiles[i].getName());
      }
    }

它是安装在集成到 Java 应用程序中的 R 版本库文件夹中的软件包列表(您的计算机中可能安装了多个 R 版本),查看输出并查看是否可以在该列表中找到“stats4”,如果没有,请将该库安装在正确的 r 版本中,即在该文件夹中,或者将您的 JRI 设置更改为另一个版本。例如,这是我的库安装的输出:

 R_HOME =C:\Program Files\R\R-2.15.3   
Directory abind
    Directory amap
    Directory animation
    ..........

    Directory stats4
    Directory stringr


    ......

这意味着我将它安装在 R 版本 2.15.3 中(是的,它是旧的 :( ) ,这是连接到我的 JRI 应用程序的版本,所以对我来说它可以工作。

关于r - 在 java Eclipse 中使用 JRI 时如何导入 R 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462119/

相关文章:

mysql - 如何在R中查询55万条MySQL记录?

r - lmPerm P 值因系数阶数而异

java - while '(' 后的空语句预期错误

java - 安卓Java : Difference between current time and specific time in future is calculated wrong

r - 使 rbindlist 跳过、忽略或更改列的类属性

r - 具有预测区间的时间序列图

r - 根据 r 中的第三列及时将值复制到下一行

java - 如何在 Java 中导入 JAR 和包

java - 如何将整数值转换为十进制值?

java - wsimport 生成的 SOAP 客户端,是否有机会查看生成的 XML 以获取请求/响应?