RCaller 3.1入门

时间:2016-12-08 14:54:07

标签: java r rcaller

我尝试从RCaller开始,但我一开始就失败了 当我尝试运行任何示例时,行

RCaller caller = RCaller.create(); 

给出以下例外:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.github.rcaller.rstuff.RCallerOptions.create(RCallerOptions.java:32)
    at com.github.rcaller.rstuff.RCaller.create(RCaller.java:83)
    at Test.main(Test.java:8)
Caused by: java.lang.NullPointerException
    at java.util.Arrays.sort(Unknown Source)
    at com.github.rcaller.util.Globals.<clinit>(Globals.java:65)
    ... 3 more

我想原因是在Globals.java中,为R定义了路径,这些路径不适合我的安装。如果那是对的,问题就变成:
如何告诉RCaller我的R安装在哪里?
我知道在早期版本的RCaller中,类似

caller.setRScriptExecutable( String path );
caller.setRExecutable( String path );  

已存在,但此命令不再起作用。
我还尝试手动更改Globals.java,更改

public static String RScript_Windows = "C:\\Program Files\\R\\R-3.0.2\\bin\\Rscript.exe";
public static String R_Windows = "C:\\Program Files\\R\\R-3.0.2\\bin\\R.exe";

public static String RScript_Windows = "E:\\R\\R-3.1.1\\bin\\Rscript.exe";
public static String R_Windows = "E:\\R\\R-3.1.1\\bin\\R.exe";

但这不是正确的解决方案,而且无论如何都无法正常工作。
有谁知道一个合适的解决方案?

2 个答案:

答案 0 :(得分:1)

RCaller已更新以解决问题

答案 1 :(得分:0)

创建RCallerOptions并将选项设置为RCaller.create。 RCallerOptions.create接受R可执行路径和RScript可执行路径的参数。

RCallerOptions options = RCallerOptions.create("D:\\software\\R\\R-3.4.2\\bin\\Rscript.exe", "D:\\software\\R\\R-3.4.2\\bin\\R.exe", FailurePolicy.RETRY_1, 3000l, 100l, RProcessStartUpOptions.create());
RCaller caller = RCaller.create(options);