JRI:从R引擎获取错误消息

时间:2017-02-20 13:36:09

标签: java r rjava jri

我使用JRI使用R引擎执行大量计算。正如网络上的各种教程所指出的那样,我正在使用eval methodRengine class,例如:

engine.eval("meanVal=mean(rVector)");

在某些时候,eval方法开始返回NULL,根据文档意味着“出了问题”。但是,我无法在Rengine类中标识提供错误消息,错误状态或R控制台输出以识别原因的属性或方法。有没有办法获得有关可能发生的事情的详细信息?

1 个答案:

答案 0 :(得分:0)

嵌入它时,从R获取错误信息实际上非常困难。但是,它确实提供了R级的更多信息。因此,最简单的方法是将代码包装在

try(..., silent=TRUE)

tryCatch(..., error=function(e) e)

这样您就可以通过定期评估将错误带回Java。如果你想变得非常花哨,你可以使用Rserve::Rserve.eval(),它也可以返回错误的堆栈跟踪,但需要http://rforge.net/Rserve

Rserve包的最新版本