That's fine, but I'm here in town if you want me to pick her up at the airport.
David -----Original Message----- From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Chel Hee Lee Sent: Thursday, January 29, 2015 9:18 AM To: Jeff Newmiller; Alan Yong; r-help@r-project.org Subject: Re: [R] Passing a Data Frame Name as a Variable in a Function I like Jeff's comments on the previous post. Regarding Alan's question, please see the following example. > df.1 <- data.frame(v1=1:5, v2=letters[1:5]) > df.2 <- data.frame(v1=LETTERS[1:3], v2=11:13) > DFName <- ls(pattern = glob2rx("df.*"))[1] > DFName [1] "df.1" > length(DFName[,1]) Error in DFName[, 1] : incorrect number of dimensions 'DFName' is a character vector of length 1 (it is neither a matrix nor a data frame). In this case, you may try 'eval()' as below: > eval(parse(text=DFName)) v1 v2 1 1 a 2 2 b 3 3 c 4 4 d 5 5 e > eval(parse(text=DFName))[,1] [1] 1 2 3 4 5 > length(eval(parse(text=DFName))[,1]) [1] 5 > Is this what you are looking for? I hope this helps. Chel Hee Lee On 1/29/2015 12:34 AM, Jeff Newmiller wrote: > This approach is fraught with dangers. > > I recommend that you put all of those data frames into a list and have your > function accept the list and the name and use the list indexing operator > mylist[[DFName]] to refer to it. Having functions that go fishing around in > the global environment will be hard to maintain at best, and buggy at worst. > > That said, I usually work with all of my data frames combined as one and use > the plyr, dplyr, or data.table packages to apply my algorithms to each group > of rows identified by a character or factor column. > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > On January 28, 2015 5:37:34 PM PST, Alan Yong <alany...@caltech.edu> wrote: >> Dear R-help, >> I have df.1001 as a data frame with rows & columns of values. >> >> I also have other data frames named similarly, i.e., df.*. >> >> I used DFName from: >> >> DFName <- ls(pattern = glob2rx("df.*"))[1] >> >> & would like to pass on DFName to another function, like: >> >> length(DFName[, 1]) >> >> however, when I run: >> >>> length(DFName[, 1]) >> Error in DFName[, 1] : incorrect number of dimensions >> >> and >> >> length(df.1001[, 1]) >> [1] 104 >> >> do not provide the same expected answer. >> >> How can I successfully pass the data frame name of df.1001 as a >> variable named DFName in a function? >> >> Thanks, >> Alan >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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 -- To UNSUBSCRIBE and more, see > 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 -- To UNSUBSCRIBE and more, see 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 -- To UNSUBSCRIBE and more, see 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.