{r2r} now on CRAN
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Introduction
My package {r2r}
(v0.1.1) has been accepted by CRAN, and is now available for download from the public repository.
r2r
r2r
provides a flexible implementation of hash tables in R, allowing for:
- arbitrary R objects as keys and values,
- arbitrary key comparison and hash functions,
- customizable behaviour (throw or return a default value) on missing key exceptions.
Installation
You can install the released version of r2r
from CRAN with:
install.packages("r2r")
and the development version from my R-universe repository, with:
install.packages("r2r", repos = "https://vgherard.r-universe.dev")
Usage
library(r2r) m <- hashmap() # Insert and query a single key-value pair m[[ "user" ]] <- "vgherard" m[[ "user" ]] [1] "vgherard" # Insert and query multiple key-value pairs m[ c(1, 2, 3) ] <- c("one", "two", "three") m[ c(1, 3) ] [[1]] [1] "one" [[2]] [1] "three" # Keys and values can be arbitrary R objects m[[ lm(mpg ~ wt, mtcars) ]] <- c(TRUE, FALSE, TRUE) m[[ lm(mpg ~ wt, mtcars) ]] NULL
Getting help
For further details, including an introductory vignette illustrating the features of r2r
hash maps, you can consult the r2r
website. If you encounter a bug, want to suggest a feature or need further help, you can open a GitHub issue.
Comparison with hash
CRAN package {hash}
also offers an implementation of hash tables based on R environments. The two tables below offer a comparison between {r2r}
and {hash}
(for more details, see the benchmarks Vignette)
Feature | r2r | hash |
---|---|---|
Basic data structure | R environment | R environment |
Arbitrary type keys | X | |
Arbitrary type values | X | X |
Arbitrary hash function | X | |
Arbitrary key comparison function | X | |
Throw or return default on missing keys | X | |
Hash table inversion | X |
Task | Comparison |
---|---|
Key insertion | {r2r} ~ {hash} |
Key query | {r2r} < {hash} |
Key deletion | {r2r} << {hash} |
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.