Many thanks Bert! You are a big help!!
On Fri, Oct 18, 2013 at 1:25 PM, Bert Gunter <[email protected]> wrote: > That's because I screwed up! I gave you the wrong function, "f" instead of > "g" . > > Here's g: > > g <- function(...){ > sapply(as.list(match.call())[-1],deparse) > } > > and the example should now work. > > Sheepishly, > > -Bert > > > On Fri, Oct 18, 2013 at 10:21 AM, Dan Abner <[email protected]> wrote: > > Hi Bert, > > > > Thank you for the code. > > > > However, I don't see what I am doing different, but my output is > different. > > I would much rather have output similar to yours where only the input > > objects are returned (instead of the fn name, the encapsulating > parentheses, > > etc.): > > > > > >> d1<-data.frame(x1=runif(100),x2=runif(100)) > >> d2<-data.frame(x3=runif(100),x4=runif(100)) > >> d3<-data.frame(x5=runif(100),x6=runif(100)) > >> > >> set1 <- function(...,by){ > > + df.name <<- list(...) > > + name1<<-deparse(match.call()) > > + } > >> > >> set1(d1,d2,d3) > >> > >> name1 > > [1] "set1(d1, d2, d3)" > >> > > Another application (with example data too large to email) gives: > > > >> name1 > > [1] "matx.set(df1, df2, df3, df4, df5, df6, by = \"ID\")" > > > > Is there a simple way to just get: > > > > "df1" "df2" "df3" "df4" "df5" "df6" > > > > Thanks! > > > > Dan > > > > > > > > On Fri, Oct 18, 2013 at 1:07 PM, Bert Gunter <[email protected]> > wrote: > >> > >> 1. Always cc to the list unless it is truly a private offlist reply. > >> This is to get help from a wider audience, as may well be required > >> here. Translation: Take my "solution" with a grain of salt. It is > >> fragile at best. > >> > >> 2. I think ?match.call and ?deparse are what you're looking for: > >> > >> f <- function(...){ > >> deparse(match.call()) > >> } > >> > >> > g(a,b,sqrt(c(1,2,5))) > >> [1] "a" "b" "sqrt(c(1, 2, 5))" > >> > >> Cheers, > >> Bert > >> > >> > >> > >> > >> On Fri, Oct 18, 2013 at 9:36 AM, Dan Abner <[email protected]> > wrote: > >> > Hi Bert, > >> > > >> > Thanks for your response. Please see example below: > >> > > >> > > >> > d1<-data.frame(x1=runif(100),x2=runif(100)) > >> > d2<-data.frame(x3=runif(100),x4=runif(100)) > >> > d3<-data.frame(x5=runif(100),x6=runif(100)) > >> > set1 <- function(...,by){ > >> > df.name <<- list(...) > >> > name1<<-names(list(...)) > >> > } > >> > > >> > set1(d1,d2,d3) > >> > > >> > I need to be able to recover whatever input data frame names that the > >> > user > >> > passes to set1() (preferably in the character vector). > >> > > >> >> name1 > >> > NULL > >> > > >> > Here is another possible call to the fn: > >> > > >> > set1(d1,d2) > >> > > >> > > >> > > >> > > >> > > >> > > >> > On Fri, Oct 18, 2013 at 12:26 PM, Bert Gunter <[email protected] > > > >> > wrote: > >> >> > >> >> I'm not exactly sure what you mean by "names." Does the following > meet > >> >> your needs? > >> >> > >> >> f <- function(...)names(list(...)) > >> >> > >> >> > f(a=2,b=3) > >> >> [1] "a" "b" > >> >> > f(a=2,3) > >> >> [1] "a" "" > >> >> > >> >> If not, a reproducible example of what you want might be helpful. > >> >> > >> >> Cheers, > >> >> Bert > >> >> > >> >> > >> >> > >> >> > >> >> On Fri, Oct 18, 2013 at 9:05 AM, Dan Abner <[email protected]> > >> >> wrote: > >> >> > Hi all, > >> >> > > >> >> > I am using the ... argument to parmeterize a user define fn to > accept > >> >> > multiple input objects. I subsquently save all these data as a > list. > >> >> > Question: what is the best way to recover or extract the original > >> >> > object > >> >> > names that were fed to the fn? > >> >> > > >> >> > Thanks, > >> >> > > >> >> > Dan > >> >> > > >> >> > [[alternative HTML version deleted]] > >> >> > > >> >> > ______________________________________________ > >> >> > [email protected] 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. > >> >> > >> >> > >> >> > >> >> -- > >> >> > >> >> Bert Gunter > >> >> Genentech Nonclinical Biostatistics > >> >> > >> >> (650) 467-7374 > >> > > >> > > >> > >> > >> > >> -- > >> > >> Bert Gunter > >> Genentech Nonclinical Biostatistics > >> > >> (650) 467-7374 > > > > > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > (650) 467-7374 > [[alternative HTML version deleted]] ______________________________________________ [email protected] 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.

