【问题标题】:R equivalent of Java mapR 等价于 Java 映射
【发布时间】:2012-12-04 08:14:42
【问题描述】:

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

【问题讨论】:

  • 你使用的是哪个库,rJava?
  • @rlegendi 知道如何使用 rjava 运行它吗?
  • 没人听我的帖子 :(
  • 我的回答应该有效(见page 13 in the package docs)。关键或配置元素之一不是 NA 吗?

标签: r rjava


【解决方案1】:

试试这样的怎么样?

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

【讨论】:

  • 我已经编辑了我的帖子。请查看。感谢您的支持:)
【解决方案2】:

我想你是说

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

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多