首页 > 解决方案 > 创建二级哈希索引

问题描述

尝试在 R 中创建具有两个级别的哈希索引。

为了避免 for 循环和复制操作,我想出了以下代码:

  library(hash)
  index.value.model <- hash(keys = 1:10, values = rep(list(list()),10 ))
  new.obj <- hash(keys = 1:100, values = rep(index.value.model, 100) )

rep(index.value.model, 100) 中的错误:尝试复制“S4”类型的对象

我怎样才能做到这一点?

标签: rhash

解决方案


你的问题是由于指令rep(index.value.model, 100),因为index.value.model没有正确的格式。它看起来像这样:

<hash> containing 10 key-value pair(s).
  1 : NULL
  10 : NULL
  2 : NULL
  3 : NULL
  4 : NULL
  5 : NULL
  6 : NULL
  7 : NULL
  8 : NULL
  9 : NULL

如果您想要一个具有两个级别的哈希表,请尝试以下代码:

hash(keys = 1:100, values = rep(c("1","2"), 50) )

<hash> containing 100 key-value pair(s).
  1 : 1
  10 : 2
  100 : 2
  11 : 1
  12 : 2
  13 : 1
  ...
  96 : 2
  97 : 1
  98 : 2
  99 : 1

推荐阅读