2

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

如何编写调用我的 Java 函数并将值传递给 map 的 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.
4

3 回答 3

1

试试这样的东西怎么样?

m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
于 2012-12-04T11:38:02.163 回答
1

我想你的意思是

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

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

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

于 2013-01-09T04:05:33.997 回答
0

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

m <- .jnew("java/util/HashMap")
m$put( "key", "value" )
map <- .jcast(m, "java/util/Map")
于 2016-10-18T15:33:37.183 回答