[R] paste together object names to pass it on to a function

jim holtman jholtman at gmail.com
Fri Jan 30 18:15:46 CET 2009


This should do it:

?"[["

> gnuff<-list()
> gnuff$IHD$LE<-66
> gnuff$LUNG$LE <-55
>
>
>
> nam <- c("LUNG","IHD")
>
> x <- numeric(2)  # allocate
> for(i in 1:2)
+ x[i] <- gnuff[[nam[i]]]$LE / 2
>
> x
[1] 27.5 33.0


On Fri, Jan 30, 2009 at 12:06 PM, stefan.duke at gmail.com
<stefan.duke at gmail.com> wrote:
> Hello,
> I have a maybe trivial question, but I simply don't understand well
> enought how to work with text/strings:
>
> I have a rather compelx data structure, a big list with several
> sub-lists/dataframes and for certain calculations  (which I do in
> loops), I only need a certain group of  sub-lists/dataframes, which I
> want to specify with a name vector and paste together the object name
> and pass it on to a function.
>
> Here an (hopefully) instructive example
>
> #Data Example
> gnuff<-list()
> gnuff$IHD$LE<-66
> gnuff$LUNG$LE <-55
>
> #This is the list, where I collect data for different diseases at the
> second level of the list
> #Now I want to do calcualtions just for these two diseases and the
> sub-list "LE" within these diseases
>
>
> nam <- c("LUNG","IHD")
>
> for(i in 1:2)
> x[i] <- paste("gnuff",nam[i],"LE",sep="$") /2
> x
>
> #So I try to paste the name of the object which I mean
> (gnuff$IHD$LEand gnuff$LUNG$LE, respectivly), but R treats them as a
> string and not as the name of an object.
> # I tried seveal commands to make it treat like an object name (the
> get() looked most promising), but so far to no avail
>
> #commands I have tried
> j <- eval(paste("gnuff",nam[i],"LE",sep="$"))
> parse(paste("gnuff",nam[i],sep="$"))
> quote(paste("gnuff",nam[i],sep="$"))
> get(paste("gnuff",nam[i],sep="$"))
>
> Anybody any hints where to look?
> Thanks and have a great weekend!
> Best,
> Stefan
>
> ______________________________________________
> R-help at 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?



More information about the R-help mailing list