Function to facilitate the control of arguments passed to subroutines.
Source:R/SmartControl.R
SmartControl.RdMany R functions need to pass several arguments to several different subroutines. Such arguments can are given as part of the three magic dots "...". The function SmartControl reads the dots together with a list of default values and returns for each subroutine a list of arguments.
Usage
SmartControl(
call,
keys,
ignore,
defaults,
forced,
split,
ignore.case = TRUE,
replaceDefaults,
verbose = TRUE
)Arguments
- call
A list of named arguments, as for example can be obtained via
list(...).- keys
A vector of names of subroutines.
- ignore
A list of names which are removed from the argument
callbefore processing.- defaults
A named list of default argument lists for the subroutines.
- forced
A named list of forced arguments for the subroutines.
- split
Regular expression used for splitting keys from arguments. Default is
"\.".- ignore.case
If
TRUEthen all matching and splitting is not case sensitive.- replaceDefaults
If
TRUEdefault arguments are replaced by given arguments. Can also be a named list with entries for each subroutine.- verbose
If
TRUEwarning messages are given for arguments incallthat are not ignored via argumentignoreand that do not match anykey.
Author
Thomas Alexander Gerds <[email protected]>
Examples
myPlot = function(...){
## set defaults
plot.DefaultArgs=list(x=0,y=0,type="n")
lines.DefaultArgs=list(x=1:10,lwd=3)
## apply smartcontrol
x=SmartControl(call=list(...),
defaults=list("plot"=plot.DefaultArgs, "lines"=lines.DefaultArgs),
ignore.case=TRUE,keys=c("plot","axis2","lines"),
forced=list("plot"=list(axes=FALSE),"axis2"=list(side=2)))
## call subroutines
do.call("plot",x$plot)
do.call("lines",x$lines)
do.call("axis",x$axis2)
}
myPlot(plot.ylim=c(0,5),plot.xlim=c(0,20),lines.lty=3,axis2.At=c(0,3,4))