我使用JRI使用R引擎执行大量计算。正如网络上的各种教程所指出的那样,我正在使用eval
method的Rengine
class,例如:
engine.eval("meanVal=mean(rVector)");
在某些时候,eval
方法开始返回NULL
,根据文档意味着“出了问题”。但是,我无法在Rengine
类中标识提供错误消息,错误状态或R控制台输出以识别原因的属性或方法。有没有办法获得有关可能发生的事情的详细信息?
答案 0 :(得分:0)
嵌入它时,从R获取错误信息实际上非常困难。但是,它确实提供了R级的更多信息。因此,最简单的方法是将代码包装在
中try(..., silent=TRUE)
或
tryCatch(..., error=function(e) e)
这样您就可以通过定期评估将错误带回Java。如果你想变得非常花哨,你可以使用Rserve::Rserve.eval()
,它也可以返回错误的堆栈跟踪,但需要http://rforge.net/Rserve
Rserve
包的最新版本