[R] Most elegant way to use formals() in building functions

Frank E Harrell Jr f.harrell at vanderbilt.edu
Sat Jul 25 00:35:18 CEST 2009


Dear Group:

I want to create a function having a ... argument and to have the 
default arguments evaluated, as thus:

g <- function(a, b, ...) a+b
formals(g) <- alist(a=,b=2+3,...=)
g
function (a, b = 2 + 3, ...)
a + b

But I want the default argument for b to be evaluated as 5.  How can 
this be done?  Note: My real need is for a more complex expression to be 
evaluated for the default value of an argument.

I can use formals(g) <- list(a=NULL, b=2+3, ...=NULL) but then list(...) 
doesn't behave properly in the function.

Thanks
Frank

-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the R-help mailing list