Skip to content
Back to formatted view

Raw Message

Message-ID: <a211af3b0901300906p767a750p4a8e6de3c3c507f9@mail.gmail.com>
Date: 2009-01-30T17:06:00Z
From: stefan.duke at gmail.com
Subject: paste together object names to pass it on to a function

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