From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Mon 25 Dec 2006 - 13:33:54 GMT

R-help@stat.math.ethz.ch 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. Received on Tue Dec 26 00:42:00 2006

Date: Mon 25 Dec 2006 - 13:33:54 GMT

my.length.2 also has the advantage of eliminating the eval.

On 12/25/06, Christos Hatzis <christos@nuverabio.com> wrote:

> Thank you Gabor. Very interesting solution.

*> If I get it right, the first argument in function f is just a placeholder to
**> help extract the right element out of the list(...) that is passed to
**> length. Very smart trick.
**>
**> Jim's solution appears a bit simpler, at least along the lines that I was
**> thinking:
**>
**> my.length <- function(...) {
**> names <- as.character(substitute(list(...)))[-1]
**> sapply(names, function(x){y <- eval(parse(text=x)); length(y)})
**> }
**>
**> -Christos
**>
**> -----Original Message-----
**> From: Gabor Grothendieck [mailto:ggrothendieck@gmail.com]
**> Sent: Sunday, December 24, 2006 7:41 AM
**> To: jim holtman
**> Cc: christos@nuverabio.com;
**> Subject: Re: [R] how to 'get' an object that is part of a list
**>
**> Is this what you are looking for:
**>
**> > my.length.2 <- function(...) {
**> + f <- function(nm, val) length(val)
**> + mapply(f, make.names(as.list(match.call()[-1])), list(...)) }
**> > my.length.2(xx, xx$b)
**> xx xx.b
**> 2 5
**>
**> On 12/24/06, jim holtman <jholtman@gmail.com> wrote:
**> > use 'eval' and 'parse'
**> >
**> >
**> > > xx
**> > $a
**> > [1] 1 2 3 4 5
**> >
**> > $b
**> > [1] "a" "b" "c" "d" "e"
**> >
**> > > eval(parse(text='xx$a'))
**> > [1] 1 2 3 4 5
**> > >
**> >
**> > So that way you can pass in the character string and then 'parse' it.
**> >
**> >
**> >
**> > On 12/24/06, Christos Hatzis <christos@nuverabio.com> wrote:
**> > >
**> > > This might be an trivial thing but I am stuck.
**> > >
**> > > Consider:
**> > >
**> > > xx <- list(a=1:5, b=letters[1:5])
**> > >
**> > > Although object xx is accessible through its name, how can object
**> > > xx$b be accessed similarly through its name?
**> > >
**> > > > get("xx")
**> > > $a
**> > > [1] 1 2 3 4 5
**> > >
**> > > $b
**> > > [1] "a" "b" "c" "d" "e"
**> > >
**> > > > get("xx$b")
**> > > Error in get(x, envir, mode, inherits) : variable "xx$b" was not
**> > > found
**> > >
**> > > get("xx")$b will not work in my case because it will probably
**> > > require parsing to make it work within a function. E.g.
**> > >
**> > > my.length <- function(...) {
**> > > names <- as.character(substitute(list(...)))[-1]
**> > > sapply(names, FUN=function(x){y <- get(x); length(y)}) }
**> > > > my.length(xx)
**> > > xx
**> > > 2
**> > > > my.length(xx$a)
**> > > Error in get(x, envir, mode, inherits) : variable "xx$a" was not
**> > > found
**> > > > my.length(xx$a, xx$b)
**> > > Error in get(x, envir, mode, inherits) : variable "xx$a" was not
**> > > found
**> > >
**> > > Thank you.
**> > >
**> > > Christos Hatzis, Ph.D.
**> > > Nuvera Biosciences, Inc.
**> > > 400 West Cummings Park
**> > > Suite 5350
**> > > Woburn, MA 01801
**> > > Tel: 781-938-3830
**> > > www.nuverabio.com
**> > >
**> > > ______________________________________________
**> > > R-help@stat.math.ethz.ch 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.
**> > >
**> >
**> >
**> >
**> > --
**> > Jim Holtman
**> > Cincinnati, OH
**> > +1 513 646 9390
**> >
**> > What is the problem you are trying to solve?
*

R-help@stat.math.ethz.ch 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. Received on Tue Dec 26 00:42:00 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Mon 25 Dec 2006 - 22:30:23 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*