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.