【问题标题】:Include packages in R - Rserve - Java在 R - Rserve - Java 中包含包
【发布时间】:2017-05-30 13:27:39
【问题描述】:

我已经为这个问题苦苦挣扎了几天,找不到解决方法。

我有一个运行良好的 R 脚本,我想从 Java 访问它,但是当我获取 R 脚本时,它无法在 R 中包含包并且它无法识别其中的函数。为什么会这样?如果你们中有人知道为什么会发生这种情况,我将不胜感激。

这是我用来调用R的java代码...

public static void main(String a[]) throws Exception {

System.out.println("result="+StartRserve.checkLocalRserve());

RConnection c = null;

try {
/* Create a connection to Rserve instance running on default port
* 6311
*/  

  c = new RConnection();

  c.eval("source(\"C:/mypath/myFunction\")");

  RList result = c.eval("myFunction("+args+")").asList();

  ... more code that fails to execute ....

  String processName = "Rserve.exe";

  if (isProcessRunning(processName)) {
    killProcess(processName);
  }

  c.close();


  }//Fin del Try
  catch (RserveException e) {
  String processName = "Rserve.exe";
  if (isProcessRunning(processName)) {
     killProcess(processName);
  }
  e.printStackTrace();
  } 
  catch (REXPMismatchException e) {
    e.printStackTrace();   
  }
  }
  }

这是我从 JAVA 调用的 R 脚本...

myFunction=function(args){

    require('ROracle')
    require('DBI')
    require('janitor')

    source("mypath/functions.R")
    source("mypath/queries.R")

    aa <- c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,1,2,3,4,5,1,2,3)
    bb <- tabyl(aa)

    ..... More code comes here but it Fails already ...

}

[R ERROR]:tabyl(aa) 中的错误:找不到函数“tabyl”

tabyl 函数来自 library('janitor'),但它基本上无法导入任何库。

为什么没有导入库?

提前致谢。

【问题讨论】:

  • tabyl 应该从哪里来?
  • 它来自 janitor 包,但无论如何......它在那里失败,因为是第一个被引用的函数......如果我删除它会说“找不到函数”dbDriver“ " 来自 ROracle 库...最终无法导入所有这些...
  • 如果你在代码中尝试bb &lt;- janitor::tabyl(aa)会发生什么?即使未加载包,这也应该有效。
  • [R ERROR]: Error in loadNamespace(j &lt;- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : there is no package called 'dplyr 我明白了...我觉得 libPaths() 有问题,但不知道如何解决
  • 好的,我终于弄清楚发生了什么...我会发布一个答案,以防它可以帮助遇到类似问题的其他人。

标签: java r packages libraries rserve


【解决方案1】:

问题是我试图从服务器获取用户帐户中的文件,因此我没有足够的权限来读取其中的库。我重新安装了 R 并将所有文件保存在服务器中,现在一切正常。我希望这对其他人有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多