Defaults {quantmod} | R Documentation

## Manage Default Argument Values for quantmod Functions

### Description

Use globally specified defaults, if set, in place of formally specified default argument values. Allows user to specify function defaults different than formally supplied values, e.g. to change poorly performing defaults, or satisfy a different preference.

### Usage

    setDefaults(name, ...)
    unsetDefaults(name, confirm = TRUE)
    getDefaults(name = NULL, arg = NULL)
    importDefaults(calling.fun)

### Arguments

`name` | name of function, quoted or unquoted
`...` | name=value default pairs
`confirm` | prompt before unsetting defaults
`arg` | values to retrieve
`calling.fun` | name of function to act upon

### Details

setDefaults

  Provides a wrapper to R `options` that allows the user to specify any name=value pair for a function's formal arguments. Only formal name=value pairs specified will be updated.

  Values do not have to be respecified in subsequent calls to `setDefaults`, so it is possible to add new defaults for each function one at a time, without having to retype all previous values. Assigning `NULL` to any argument will remove the argument from the defaults list.

unsetDefaults

  Removes name=value pairs from the defaults list.

getDefaults

  Provides access to the stored user defaults. Single arguments need not be quoted, multiple arguments must be in a character vector.

importDefaults

  A call to `importDefaults` should be placed on the first line in the body of the function. It checks the user's environment for globally specified default values for the called function. These defaults can be specified by the user with a call to `setDefaults`, and will override any default formal parameters, in effect replacing the original defaults with user supplied values instead. Any user-specified values in the parent function (that is, the function containing `importDefaults`) will override the values set in the global default environment.

### Value

`setDefaults` | None. Used for it's side effect of setting a list of default arguments by function.
`unsetDefaults` | None. Used for it's side effect of unsetting default arguments by function.

`getDefaults`

A named list of defaults and associated values, similar to `formals`, but only returning values set by `setDefaults` for the `name` function. Calling `getDefaults()` (without arguments) returns in a character vector of all functions currently having defaults set (by `setDefaults`).

This does not imply that the returned function names are able to accept defaults (via `importDefaults`), rather that they have been set to store user defaults. All values can also be viewed with a call to `getOption(name_of_function.Default)`.

`importDefaults`

None. Used for its side-effect of loading all non-`NULL` user- specified default values into the current function's environment, effectively changing the default values passed in the parent function call. Like formally defined defaults in the function definition, default values set by `importDefaults` take lower precedence than arguments specified by the user in the function call.

### Note

setDefaults

  At present it is not possible to specify `NULL` as a replacement for a non-`NULL` default, as the process interprets `NULL` values as being not set, and will simply use the value specified formally in the function. If `NULL` is what is desired, it is necessary to include this in the function call itself.

  Any arguments included in the actual function call will take precedence over `setDefaults` values, as well as the standard formal function values. This conforms to the current user experience in R.

  Like `options`, default settings are not kept across sessions. Currently, it is not possible to pass values for ... arguments, only formally specified arguments in the original function definition.

unsetDefaults

  `unsetDefaults` removes the all entries from the `options` lists for the specified function. To remove single function default values simply set the name of the argument to `NULL` in `setDefaults`.

importDefaults

  When a function implements `importDefaults`, non-named arguments may be ignored if a global default has been set (i.e. not `NULL`). If this is the case, simply name the arguments in the calling function.

  This should also work for functions retrieving formal parameter values from `options`, as it assigns a value to the parameter in a way that looks like it was passed in the function call. So any check on `options` would presumably disregard `importDefaults` values if an argument was passed to the function.

### Author(s)

Jeffrey A. Ryan

### See Also

`options`

### Examples

    my.fun <- function(x=3)
    {
      importDefaults('my.fun')
      x^2
    }

    my.fun()        # returns 9

    setDefaults(my.fun, x=10)
    my.fun()        # returns 100
    my.fun(x=4)     # returns 16

    getDefaults(my.fun)
    formals(my.fun)
    unsetDefaults(my.fun, confirm=FALSE)
    getDefaults(my.fun)

    my.fun()        # returns 9

[Package quantmod version 0.4-14 Index]