R 相当于 Java 映射



我想将键/值对从我的R代码传递给java函数。我的java函数有参数Map<String,String >

如何编写调用我的 Java 函数并将值传递给映射的 R 函数?

编辑:

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.

试试这样的事情怎么样?

m <- .jnew("java/util/HashMap")
m$put( "key", "value" )

我想你的意思

for (key in names(config)) m$put(key, config[[key]])

因为您想将字符串作为值传递给put而不是列表。

(考虑在rJava邮件列表stats-rosuda-devel上询问以获得更及时的答案)

对于像我这样遇到此问题并且无法访问 Java 代码的人来说,似乎可以制作一个 HashMap,并将其转换为 Map,如下所示:

m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
map <- .jcast(m, "java/util/Map")

最新更新