> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Sean Zhang > Sent: Thursday, January 13, 2011 4:37 PM > To: r-help@r-project.org > Subject: [R] question about deparse(substitute(...)) > > Dear R helpers: > > I like to apply deparse(substitute()) on multiple arguments > to collect the > names of the arguments into a character vector. > I used function test.fun as below. it works when there is > only one input > argument. but it does not work for multiple arguements. can > someone kindly > help? > > test.fun <- function(...){deparse(substitute(...))} > test.fun(x) #this works > test.fun(x,y,z) # I like c('x','y','z') be the output, but > cannot get it.
One way is: > f <- function(...) lapply(substitute(placeholderFunction(...))[-1], deparse) > f(x, log(y), (function(a){a+a^2/2+a^3/6})(z)) [[1]] [1] "x" [[2]] [1] "log(y)" [[3]] [1] "(function(a) {" [2] " a + a^2/2 + a^3/6" [3] "})(z)" Use paste(collapse="\n",s) or s[1] on deparse's output if you require one string per input. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > > Thanks in advance. > > -Sean > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > ______________________________________________ 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.