Skip to contents

Modify a list of defaults by name, allowing for replacement, deletion and addition of new elements.

Usage

modify_defaults(defaults, ...)

Arguments

defaults

named list of elements to modify.

...

arguments of elements to change. If unnamed, the argument is automatically named. If the named argument already exists in defaults, it is replaced by the new element. If it does not exist, it is added. If the value is NULL, the element is removed.

Value

A modified list of elements, sorted by name. To achieve this sort in a platform-independent way, two transformations are applied to the names: (1) replace _ with 0 and (2) convert tolower().

See also

Examples

# custom list of undesirable functions:
#    remove `sapply` (using `NULL`)
#    add `cat` (with an accompanying message),
#    add `print` (unnamed, i.e. with no accompanying message)
#    add `source` (as taken from `all_undesirable_functions`)
my_undesirable_functions <- modify_defaults(
  defaults = default_undesirable_functions,
  sapply = NULL, "cat" = "No cat allowed", "print", all_undesirable_functions[["source"]]
)

# list names of functions specified as undesirable
names(my_undesirable_functions)
#>  [1] ".libPaths"     "attach"        "browser"       "cat"          
#>  [5] "debug"         "debugcall"     "debugonce"     "detach"       
#>  [9] "library"       "mapply"        "options"       "par"          
#> [13] "print"         "require"       "setwd"         "sink"         
#> [17] "source"        "structure"     "Sys.setenv"    "Sys.setlocale"
#> [21] "trace"         "undebug"       "untrace"