dbLoad {filehash} | R Documentation |
Load entire database into an environment
db2env(db) dbLoad(db, env = parent.frame(), keys = NULL)
db |
database object |
env |
an environment |
keys |
character vector of database keys to load |
... |
other arguments passed to methods |
db2env
loads the entire database db
into an environment
via calls to makeActiveBinding
. Therefore, the data themselves
are not stored in the environment, but a function pointing to the data
in the database is stored. When an element of the environment is
accessed, the function is called to retrieve the data from the
database. If the data in the database is changed, the changes will be
reflected in the environment.
dbLoad
loads objects in the database directly into the
environment specified (like load
does). dbLoad
takes a
second argument env
, which is an environment, and the default for
env
is parent.frame()
.
The use of makeActiveBinding
in db2env
and dbLoad
allows for potentially large databases to, at least conceptually, be
used in R, as long as you don't need simultaneous access to all of the
elements in the database.
For db2env
, an environment is returned, the elements of which
are the keys of the database. For dbLoad
, a character vector
is returned (invisibly) containing the keys associated with the values
loaded into the environment.
Roger D. Peng
dbInitialize
and filehash-class
dbCreate("myDB") db <- dbInitialize("myDB") dbInsert(db, "a", rnorm(100)) dbInsert(db, "b", 1:10) env <- db2env(db) ls(env) ## "a", "b" print(env$b) mean(env$a) env$a <- rnorm(100) mean(env$a) env$b[1:5] <- 5:1 print(env$b) env <- new.env() dbLoad(db, env) ls(env)