getSymbols is a wrapper to load data from
various sources, local or remote. Data is
fetched via one of the available
and either saved in the
env specified - the
by default -- or returned to the caller. The functionality derives from
behavior and semantics, i.e. is assigned automatically
to a variable in the specified environment without the
user explicitly assigning the returned data to a variable. The assigned variable
name is that of the respective Symbols value.
The previous sentence's point warrants repeating - getSymbols is called
for its side effects, and by defaultdoes not return the data object
loaded. The data is ‘loaded’ silently by the function
into the environment specified.
If automatic assignment is not desired,
env may be set to NULL, or
auto.assign set to FALSE.
The early versions of getSymbols assigned each object into the user's
.GlobalEnv by name (pre 2009 up to versions less than 0.4-0).
This behavior is now supported by manually setting
env=.GlobalEnv. As of version 0.4-0, the environment is set
to parent.frame(), which preserved the user workspace when
called within another scope.
This behavior is expect to change for getSymbols as of 0.5-0, and all
results will instead be explicitly returned to the caller
auto.assign is set to
Many thanks to Kurt Hornik and Achim Zeileis for suggesting this change, and
further thanks to Dirk Eddelbuettel for encouraging the move to a more functional
default by 0.5-0.
Using auto.assign=TRUE, the variable chosen is an R-legal name derived
from the symbol being loaded. It is possible, using
setSymbolLookup to specify an alternate
name if the default is not desired. See that function for
If auto.assign=FALSE or env=NULL (as of 0.4-0)
the data will be returned from the call, and will require
the user to assign the results himself. Note that only one symbol
at a time may be requested when auto assignment is disabled.
Most, if not all, documentation and functionality related
to model construction and testing in quantmod
assumes that auto.assign remains set to TRUE and
a valid environment object for the calls related to those functions.
Upon completion a list of
loaded symbols is stored in the specified environment
under the name
Objects loaded by
getSymbols with auto.assign=TRUE
can be viewed with
removed by a call to
data loading “methods” can be
created simply by following the S3-like naming
convention where getSymbols.NAME
is used for your function NAME. See
setDefaults(getSymbols) can be used to
specify defaults for
setDefaults(getSymbols.MySQL) may be used for arguments
The “sourcing” of data is managed internally
through a complex lookup procedure. If
is TRUE (the default), a check is made if any symbol
has had its source specified by
If not set, the process continues by checking to see if
src has been specified by the user in the
function call. If not, any
src defined with
setDefaults(getSymbols,src=) is used.
Finally, if none of the other source rules apply
src method is