RCaller:防止自动错误打印

时间:2016-02-25 11:46:08

标签: java r rcaller

我正在使用RCallerJava application内的数据框执行某些分析。更具体地说,我想使用Coarsened Exact Matching的{​​{1}}库运行CEM

R而言,如果找到任何匹配,它会返回一些有关数学运算的数据。否则(找不到匹配)就失败了。

当我从CEM调用runAndReturnResult方法时,如果Java applicationCEM内失败,则R会自动打印在RCaller上,我添加到Java application's console实例的所有代码。

有没有办法阻止这种印刷?我的意思是,我想忽略没有找到匹配并继续前进的情况,而不在我的控制台上打印消息。

提前感谢任何有帮助的人。

1 个答案:

答案 0 :(得分:1)

有两种方法可以解决这个问题:

  • RCaller正在使用java.util.logging.Logger,因此您需要添加logback.xml - file来禁用logger的输出。
  • tryCatch({})内使用R,以便您的R code不会中断 - >不会在Java
  • 中触发任何错误

我会推荐第二种解决方案。

<强>更新

您必须添加error - block

mat <- tryCatch({
   cem(treatment = "c_CLUSTER", data = df, drop = dp))
 }, error = function(e) {
    NULL # or do something else
 }, finally = {
 })

如果您想忽略所有warnings,请在method call

中轻击suppressWarnings(<method-call>)

或者您也可以向warning - block

添加tryCatch - block