The hashtable packages provides three implementations of hash tables and hash maps:
std::unordered_map and std::unordered_set from C++, in functions hash_table() and hash_set(),hash_fm_table() and hash_fm_set(),hash_env_table() and hash_env_set().They share the same user interface.
library(devtools)
# install_github("jokergoo/hashtable")
install.packages("hashtable", repos = c('https://jokergoo.r-universe.dev', 'https://cloud.r-project.org'))
library(hashtable)
h1 = hash_table(letters, 1:26)
h2 = hash_fm_table(letters, 1:26)
h3 = hash_env_table(letters, 1:26)
h1
## A hash table [hash_unordered_map] with 26 key-value (integer) pairs
## v => 22
## u => 21
## z => 26
## ......
## b => 2
## w => 23
## a => 1
h1 = hash_set(letters)
h2 = hash_fm_set(letters)
h3 = hash_env_set(letters)
h1
## A hash set [hash_unordered_set] with 26 keys (character)
See https://jokergoo.github.io/hashtable/articles/benchmark.html.
MIT @ Zuguang Gu