formals
Access to and Manipulation of the Formal ArgumentsGet or set the formal arguments of a function
.
formals(fun = sys.function(sys.parent()), envir = parent.frame()) formals(fun, envir = environment(fun)) <- value
fun | a |
envir |
|
value |
For the first form, fun
can also be a character string naming the function to be manipulated, which is searched for in envir
, by default from the parent frame. If it is not specified, the function calling formals
is used.
Only closures have formals, not primitive functions.
formals
returns the formal argument list of the function specified, as a pairlist
, or NULL
for a non-function or primitive.
The replacement form sets the formals of a function to the list/pairlist on the right hand side, and (potentially) resets the environment of the function, dropping attributes
.
formalArgs
(from methods), a shortcut for names(formals(.))
. args
for a human-readable version, alist
to construct a typical formals value
, see the examples.
The three parts of a (non-primitive) function
are its formals
, body
, and environment
.
require(stats) formals(lm) ## If you just want the names of the arguments, use formalArgs instead. names(formals(lm)) methods:: formalArgs(lm) # same ## formals returns a pairlist. Arguments with no default have type symbol (aka name). str(formals(lm)) ## formals returns NULL for primitive functions. Use it in combination with ## args for this case. is.primitive(`+`) formals(`+`) formals(args(`+`)) ## You can overwrite the formal arguments of a function (though this is ## advanced, dangerous coding). f <- function(x) a + b formals(f) <- alist(a = , b = 3) f # function(a, b = 3) a + b f(2) # result = 5
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.