如何在R环境中使用变量的值作为键?

时间:2011-09-15 14:10:30

标签: r hashmap

在R编程语言中,我想使用哈希表。

如何使用变量的值作为环境的关键?

例如:

map <- new.env(hash=T, parent=emptyenv())
key <- 'ddd'
map$key <- 4
print(ls(map))
>>[1] "key"

输出是'key',这意味着我得到了从字符串'key'到值4的映射。我真正想要这个代码做的是将字符串'ddd'映射到值4.

我怎样才能做到这一点?

PS。我没有使用命名列表,因为它没有使用散列来进行搜索,因为它使用大量元素很慢。

1 个答案:

答案 0 :(得分:30)

正如?"$"中所述:

 Both ‘[[’ and ‘$’ select a single element of the list.  The main
 difference is that ‘$’ does not allow computed indices, whereas
 ‘[[’ does.  ‘x$name’ is equivalent to ‘x[["name", exact =
 FALSE]]’.  Also, the partial matching behavior of ‘[[’ can be
 controlled using the ‘exact’ argument.

所以你想要:

map[[key]] <- 4
> print(ls(map))
[1] "ddd" "key"
> map[[key]]
[1] 4