我正在使用RCaller
对Java application
内的数据框执行某些分析。更具体地说,我想使用Coarsened Exact Matching
的{{1}}库运行CEM
。
就R
而言,如果找到任何匹配,它会返回一些有关数学运算的数据。否则(找不到匹配)就失败了。
当我从CEM
调用runAndReturnResult
方法时,如果Java application
在CEM
内失败,则R
会自动打印在RCaller
上,我添加到Java application's console
实例的所有代码。
有没有办法阻止这种印刷?我的意思是,我想忽略没有找到匹配并继续前进的情况,而不在我的控制台上打印消息。
提前感谢任何有帮助的人。
答案 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