Trying to build up functions with its names by means of lapply
You can put print statements into the arguments given to a function to more directly see when they get evaluated. E.g.,
z <- f0(c={ cat("Evaluating 'c' argument\n"); "p"}, nm="norm", mean={ cat("Evaluating 'mean' argument\n"); 1.2 })
Evaluating 'c' argument
z(1:5)
Evaluating 'mean' argument [1] 0.4207403 0.7881446 0.9640697 0.9974449 0.9999277
z <- f1(c={ cat("Evaluating 'c' argument\n"); "p"}, nm="norm", mean={ cat("Evaluating 'mean' argument\n"); 1.2 })
Evaluating 'c' argument Evaluating 'mean' argument
z(1:5)
[1] 0.4207403 0.7881446 0.9640697 0.9974449 0.9999277
pnorm(1:5, mean=1.2)
[1] 0.4207403 0.7881446 0.9640697 0.9974449 0.9999277 where f0 does not call force(list(...)) and f1 does. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
-----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Julio Sergio Sent: Wednesday, June 05, 2013 2:11 PM To: r-help at stat.math.ethz.ch Subject: Re: [R] Trying to build up functions with its names by means of lapply William Dunlap <wdunlap <at> tibco.com> writes:
f1 <- function (c, nm = "gamma", ...)
{
probFunc <- getFunction(paste0(c, nm))
force(list(...))
function(x) probFunc(x, ...)
}
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
Thanks a lot William!, this really enhances my knowledge of the language. -Sergio.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.