我想在R中构建一个哈希。我在R中安装了哈希包。
我需要有整数键。但是,我无法访问它们。
> y <- as.character(seq(0,10,1))
> y
[1] "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
> h <- hash(key =y, values = 1:11)
> h
<hash> containing 2 key-value pair(s).
key : 0 1 2 3 4 5 6 7 8 9 10
values : 1 2 3 4 5 6 7 8 9 10 11
当我尝试访问密钥时,它给了我一个NULL值。
> h[["0"]]
NULL
h$"0"
NULL
> h$0
Error: unexpected numeric constant in "h$0"
有解决方法吗?
答案 0 :(得分:2)
library(hash)
h <- hash(y, 1:11)
> h[["0"]]
[1] 1
> h["0"]
<hash> containing 1 key-value pair(s).
0 : 1
> h$"0"
[1] 1
答案 1 :(得分:2)
您可以使用
h <- hash(y, 1:11)
h[["2"]]
[1] 3
但是,我只会使用命名列表。为什么需要哈希包?
h <- as.list(1:11)
names(h) <- y
h[["2"]]
[1] 3
答案 2 :(得分:0)
使用setNames
有效:
h <- hash(setNames(1:11, 0:10))
h[["0"]]
另一种选择可能是使用memoise
包。