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 <gunter.ber...@gene.com> 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 <dan.abne...@gmail.com> 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 <gunter.ber...@gene.com> > > 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 <dan.abne...@gmail.com> > 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]] > >> > > >> > ______________________________________________ > >> > 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. > >> > >> > >> > >> -- > >> > >> Bert Gunter > >> Genentech Nonclinical Biostatistics > >> > >> (650) 467-7374 > > > > > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > (650) 467-7374 > [[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.