Learn R Programming

filehash (version 0.3-2)

dbLoad: Load database into environment

Description

Load entire database into an environment

Usage

db2env(db, ...)
dbLoad(db, env, ...)

Arguments

db
database object
env
an environment
...
other arguments passed to methods

Value

  • 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.

Details

db2env and dbLoad are generics, but there are methods for objects of class "filehash". 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(n = 2).

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.

See Also

dbInit and filehash-class

Examples

Run this code
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)

Run the code above in your browser using DataLab