filehash-class {filehash} | R Documentation |
These functions form the interface for a simple file-based hash table.
Objects can be created by calls of the form new("filehash", ...)
.
name
:"character"
, name of the
database.datafile
:"character"
, full
path to the database file.mapfile
:"character"
, full path
to the index file.signature(db = "filehash", key =
"character")
: The dbDelete
function is for deleting
elements, but for the "DB"
format all it does is remove the
key from the lookup table.
The actual data are still in the database (but inaccessible). If
you reinsert data for the same key, the new data are simply
appended on to the end of the file. Therefore, it's possible to
have multiple copies of data lying around after a while,
potentially making the database file big. The "RDS"
format
does not have this problem.signature(db = "filehash", key =
"character")
: check to see if a key exists.signature(db = "filehash", key = "character")
:
retrieve the value associated with a given key.signature(db = "filehash", key =
"character")
: insert a key-value pair into the database. If
that key already exists, its associated value is overwritten.signature(db = "filehash")
: list all keys in
the database.signature(db = "filehashDB")
: The
dbReorganize
function is there for the purpose of rewriting
the database to remove all of the stale entries. Basically, this
function creates a new copy of the database and then overwrites
the old copy. This function has not been tested much and so
should be considered experimental. dbReorganize
is
not needed when using the "RDS"
format.with
to be used with "filehash"
objects much like it can be used with lists or data framesRoger D. Peng rpeng@jhsph.edu
dbCreate("myDB") ## Create files 'myDB.idx' and 'myDB.rdb' db <- dbInitialize("myDB") dbInsert(db, "a", 1:10) dbInsert(db, "b", rnorm(1000)) dbExists(db, "b") ## 'TRUE' dbList(db) ## c("a", "b") dbDelete(db, "a") dbList(db) ## "a" with(db, mean(b))