Rcaller从.R文件执行函数

时间:2014-05-07 09:55:08

标签: java r rcaller

我正在尝试从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 file

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

myinput()

上面的rcaller java代码没有做任何事情。如果我做错了什么请帮忙,我需要做得非常糟糕。如果还有其他方法可以实现这一点,请建议!

1 个答案:

答案 0 :(得分:0)

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字符串。