A simple way to alias a function is to do : g <- function(a = 1, b = 2, c = 3) a + b * c f <- function(...) g(...) but formals (etc) is no longer very helpful. Is there an easy way to programmatically create: f <- function(a=1, b=2, c=3) g(a=a, b=b, c=c) This comes up in ggplot2 where I alias many functions to hide the fact that I'm using proto in the background, and I'd like the aliased functions to be a little more user friendly in terms of revealing what are valid arguments (and also to match up with the rdoc files which I am building). Any ideas? Thanks, Hadley -- http://had.co.nz/
Dear Hadley, Why not just f <- g ? Regards, John -------------------------------- John Fox, Professor Department of Sociology McMaster University Hamilton, Ontario, Canada L8S 4M4 905-525-9140x23604 http://socserv.mcmaster.ca/jfox> -----Original Message----- > From: r-devel-bounces at r-project.org [mailto:r-devel-bounces at r- > project.org] On Behalf Of hadley wickham > Sent: February-23-08 5:40 PM > To: R-devel > Subject: [Rd] Aliasing a function > > A simple way to alias a function is to do : > > g <- function(a = 1, b = 2, c = 3) a + b * c > f <- function(...) g(...) > > but formals (etc) is no longer very helpful. Is there an easy way to > programmatically create: > > f <- function(a=1, b=2, c=3) g(a=a, b=b, c=c) > > This comes up in ggplot2 where I alias many functions to hide the fact > that I'm using proto in the background, and I'd like the aliased > functions to be a little more user friendly in terms of revealing what > are valid arguments (and also to match up with the rdoc files which I > am building). > > Any ideas? > > Thanks, > > Hadley > > -- > http://had.co.nz/ > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
formals can be used like this: f <- g formals(f) <- pairlist(a=1,b=2,c=3) On Sat, Feb 23, 2008 at 5:40 PM, hadley wickham <h.wickham at gmail.com> wrote:> A simple way to alias a function is to do : > > g <- function(a = 1, b = 2, c = 3) a + b * c > f <- function(...) g(...) > > but formals (etc) is no longer very helpful. Is there an easy way to > programmatically create: > > f <- function(a=1, b=2, c=3) g(a=a, b=b, c=c) > > This comes up in ggplot2 where I alias many functions to hide the fact > that I'm using proto in the background, and I'd like the aliased > functions to be a little more user friendly in terms of revealing what > are valid arguments (and also to match up with the rdoc files which I > am building). > > Any ideas? > > Thanks, > > Hadley > > -- > http://had.co.nz/ > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >