我想将一个键/值对从我的R代码传递给java函数。
我的java函数有参数Map<String,String >
。
如何编写调用Java函数的R函数并将值传递给map?
编辑:
config <- list(Portname="PORT.H.2",MktValue="8000000",WtScheme="Closed")
createPortfolio<-function(config)
{
m <- .jnew("java/util/HashMap")
for( key in names(config)){
m$put( key, config[key])
}
m
获得
Error in FUN(X[[2L]], ...) :
Sorry, parameter type `NA' is ambiguous or not supported.
答案 0 :(得分:1)
尝试这样的事情怎么样?
m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
答案 1 :(得分:1)
我认为你的意思是
for (key in names(config)) m$put(key, config[[key]])
因为您希望将字符串作为值传递给put
而不是列表。
(考虑询问rJava邮件列表stats-rosuda-devel以获得更快速的答案)
答案 2 :(得分:0)
对于像我一样有这个问题并且无法访问Java代码的人,似乎可以创建一个HashMap,并将其转换为Map,如下所示:
m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
map <- .jcast(m, "java/util/Map")