在R中表示哈希表/字典/映射的自然方式

hig*_*dth 19 dictionary r

我想在R中使用字典/地图数据结构,类似于Python dict或C++ STL std::mapstd::hash_map.

我可以做以下所有事情.它们的使用和/或性能有差异吗?如果是这样,哪个是在R中拥有这样一个数据结构的最佳方式?

> mm = c()
> mm["my key"] = 10
> mm[["my key"]]
[1] 10
> mm
my key 
    10

> mm = list()
> mm["my key"] = 10
> mm[["my key"]]
[1] 10
> mm
$`my key`
[1] 10

> mm = vector()
> mm["my key"] = 10
> mm[["my key"]]
[1] 10
> mm
my key 
    10 
Run Code Online (Sandbox Code Playgroud)

Jos*_*ich 20

最快的将是一个环境,因为它们默认是经过哈希处理的.

e <- new.env()
e$my_key <- 10
ls(e)
Run Code Online (Sandbox Code Playgroud)

  • 如果这是你想要进一步探索,这篇文章由R的果壳中的作者可能会感兴趣:http://broadcast.oreilly.com/2010/03/lookup-performance-in-r.html (7认同)
  • 谢谢,最终我决定使用包装环境的`hash`包. (3认同)