RCaller:防止自动错误打印



我正在使用RCallerJava application中的数据框执行一些分析。更具体地说,我想使用 CEM 库运行Coarsened Exact Matching R .

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

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

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

提前感谢任何可以提供帮助的人。

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

  • RCaller使用的是java.util.logging.Logger,所以你需要添加一个logback.xml - file来禁用logger的输出。
  • R 中使用 tryCatch({}),这样您的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>)

或者,您也可以向tryCatch - block添加warning - block

相关内容

  • 没有找到相关文章

最新更新