On Mon, Feb 7, 2011 at 11:33 PM, Martin Spindler <martin.spind...@gmx.de> wrote: > Dear all, > > I have the following problem: > > add <- function(x,y) {x+y} > > What is the easiest / most elegant way to create a new function (e.g. with > the name "addev") that sets the second argument of the function "add" to a > fixed value (e.g. y=3), i.e. addev <- add(x,3). But this does not work. > > Thank you for your efforts in advance! >
The Defaults package can do that: > library(Defaults) > > add <- function(x,y) {x+y} > setDefaults(add, y=3) > > add(1) [1] 4 We can look at what has happened to add. Functions have a source attribute that show the source text of the function but that text is not changed by setDefaults so we need to remove it to be sure we are looking at the actual function and not the source text: > attr(add, "source") <- NULL > add function (x, y) { if (exists(".importDefaults")) .importDefaults(calling.fun = "add") x + y } > -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@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.