如果我在 R studio 中调用我的 R 脚本的 compute_score 函数,返回的地理分数是 68.18,这是我所期望的。但是,当我在 Renjin 中调用相同的函数时,它返回 60.0,这是不正确的。在这两种情况下,我都为函数参数使用了完全相同的值。知道是什么原因造成的吗?有没有可能这可能是 Renjin 错误?
我的 compute_score 函数的结尾看起来像这样......
compute_score <- function(CIF)
{
...
response = list(
geographyScore = as.numeric(geographyScore),
industryScore = as.numeric(industryScore),
productScore = as.numeric(productScore),
channelScore = as.numeric(channelScore),
clientTypeScore = as.numeric(clientTypeScore),
transactionScore = as.numeric(transactionScore),
tags = tags
)
return(response)
}
我使用以下代码行在我的 Java 类中调用它...
ScriptEngine engine = new RenjinScriptEngineFactory().getScriptEngine();
File file = new File(getClassLoader().getResource("sample_interface.R").getFile());
engine.eval(new java.io.FileReader(file));
ListVector resList = (ListVector) engine.eval("compute_score(" + buildRRequest(buildRequest(ACCOUNT_HOLDER, NP_RETAIL, ISO_SWISS, ISO_WESTERN_SAHARA, false)) + ")");
当我签入 Intellij 调试器时,这就是 resList 的评估结果:
list(geographyScore = 60.0, industryScore = 75.0, productScore = 100.0, channelScore = 50.0, clientTypeScore = 25.0, transactionScore = 100.0, tags = list())
除地理以外的所有其他字段都正确返回,绝对应该是 68.18182,有人知道为什么不正确吗?
提醒一下,在 RStudio 中调用函数时传入完全相同的值给我 68.18182,使用 renjin 的 eval 操作调用具有相同参数值的相同函数给我 60.0 的分数,乍一看似乎是四舍五入但我不太确定,任何帮助将不胜感激。