R整数键,值映射

GTD*_*Dev 3 r hashmap map key-value

如何在R中从键到值创建一个简单的整数映射.

我想以这种方式与它互动:

id_map[245]
>> 3
id_map[123]
>> 4
Run Code Online (Sandbox Code Playgroud)

谢谢

Mat*_*rde 8

environments是最接近R中哈希表的东西.不幸的是,它们只支持character键.

ht <- new.env()
assign(as.character(245), 3, ht)
get(as.character(245), ht)
Run Code Online (Sandbox Code Playgroud)

environments被散列,并且比使用向量更有效.与其他R对象不同,environment当作为函数的参数提供时,s通过引用传递.

您可以轻松地使用它来实现自然感觉.

new.hashtable <- function() {
    e <- new.env()
    list(set = function(key, value) assign(as.character(key), value, e),
         get = function(key) get(as.character(key), e),
         rm = function(key) rm(as.character(key), e))
}
ht <- new.hashtable()
ht$set(245, 3)
ht$get(245)
# [1] 3
Run Code Online (Sandbox Code Playgroud)