我正在尝试从Java执行R文件,这是我尝试过的代码。

RCaller caller = new RCaller();
RCode code = new RCode();
caller.setRscriptExecutable("D:\\R\\R-3.0.2\\bin\\Rscript.exe");
code.clear();
caller.setRCode(code);
code.R_source("D:\\Data\\Workspace\\Cpackage\\try.R");
caller.setRCode(code);
caller.runOnly();


try.R文件

myinput<-function(){
//loading a csv file,reading it and creating an excel file(Working when it is run from r directly)
}

myinput()


上面的rcaller java代码不执行任何操作。如果我做错了,请提供帮助,我需要做得很差。如果还有其他方法可以实现,请提出建议!

最佳答案

RCaller不会更改中给出的Java路径格式

code.R_source("D:\\Data\\Workspace\\Cpackage\\try.R");


到R格式。这会产生一个R代码,例如

source("D:\\Data\\Workspace\\Cpackage\\try.R")


所以你需要将其更改为

code.R_source("D:/Data/Workspace/Cpackage/try.R");


最好看看Rcaller source的源代码,可以看出

public void R_source(String sourceFile) {
    addRCode("source(\"" + sourceFile + "\")\n");
}


用字面意义上的R文件将函数定义为R字符串。

关于java - Rcaller从.R文件执行功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23514489/

10-11 17:12