R相当于Java地图

时间:2012-12-04 08:14:42

标签: r rjava

我想将一个键/值对从我的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.

3 个答案:

答案 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")