Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R整数键,值映射_R_Map_Hashmap_Key Value - Fatal编程技术网

R整数键,值映射

R整数键,值映射,r,map,hashmap,key-value,R,Map,Hashmap,Key Value,如何在R中创建从键到值的简单整数映射 我想以这种方式与之互动: id_map[245] >> 3 id_map[123] >> 4 谢谢您可以使用数值向量,但它的缺点是需要额外的努力才能使其动态 > id_map <- numeric(500) > id_map[c(245,123)] <- c(3,4) > id_map[245] [1] 3 > id_map[123] [1] 4 environments是R中最接近哈希表的东西

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

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

id_map[245]
>> 3
id_map[123]
>> 4

谢谢

您可以使用数值向量,但它的缺点是需要额外的努力才能使其动态

> id_map <- numeric(500)
> id_map[c(245,123)] <- c(3,4)
> id_map[245]
[1] 3
> id_map[123]
[1] 4

environment
s是R中最接近哈希表的东西。不幸的是,它们只支持
字符

ht <- new.env()
assign(as.character(245), 3, ht)
get(as.character(245), ht)

列表解决方案创建243个空元素,因此它的作用类似于(动态)向量,而不是哈希映射。我找不到任何方法来创建由整数组成的稀疏数据结构;最接近的方法是字符串化整数<代码>l
rm
有一个错误<代码>>ht$rm(245):rm中的错误(如字符(键),e):。。。必须包含从以下位置调用的名称或字符串:rm(as.character(key),e)
> id_map[[245]]
[1] 3
> id_map[[123]]
[1] 4
ht <- new.env()
assign(as.character(245), 3, ht)
get(as.character(245), ht)
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