On Jan 9, 2013, at 1:00 PM, ivo welch wrote: > mea culpa. > > f <- function(...) { > ## parse out the arguments and then do something with them > } > > ## all of these should result in the same actions > f(2,3) ## interprets a to be first and b to be second > f(a=2,b=3) > f(b=3,a=2) > f(data.frame(a=2,b=3)) > f(data.frame(b=3,a=1)) > In the last two instances you are only passing a single object. I suppose you could construct the argument list with
f <- function( a=NA, ...) { code} But this works: f <- function(a=NA, b=NA) if( !is.list(a) ) {print(a); cat("\n"); print(b) } else{ with(a, {print(a); cat("\n"); print(b)} ) } There is some concern for using with in functions so maybe you would want access values with a[["a"]] and a[["b"]] Test output. > f(2,3) [1] 2 [1] 3 > f(a=2,b=3) [1] 2 [1] 3 > f(b=3,a=2) [1] 2 [1] 3 > f(data.frame(a=2,b=3)) [1] 2 [1] 3 > f(data.frame(b=3,a=1)) [1] 1 [1] 3 > > > On Tue, Jan 8, 2013 at 8:00 AM, David Winsemius <dwinsem...@comcast.net> > wrote: >> >> On Jan 7, 2013, at 6:58 PM, ivo welch wrote: >> >>> hi david---can you give just a little more of an example? the >>> function should work with call by order, call by name, and data frame >>> whose columns are the names. /iaw >>> >> >> It is I who should be expecting you to provide an example. >> >> -- David. >> David Winsemius Alameda, CA, USA ______________________________________________ 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.