[R] Transforming a string to a variable's name? help me newbie...

Greg Snow Greg.Snow at imail.org
Mon Dec 8 19:36:43 CET 2008


In the long run it will probably make your life much easier to read all the dataframes into one large list (and have the names of the elements be what your currently name the dataframes), then you can just use regular list indexing (using [[]] rather than $ in most cases) instead of having to worry about get and assign and the risks/subtleties involved in using those.

Hope this helps,

--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of tsunhin wong
> Sent: Monday, December 08, 2008 8:45 AM
> To: Jim Holtman
> Cc: r-help at r-project.org
> Subject: Re: [R] Transforming a string to a variable's name? help me
> newbie...
>
> Thanks Jim and All!
>
> It works:
> tmptrial <- trialcompute(trialextract(
> get(paste("t",tmptrialinfo[1,2],tmptrialinfo[1,16],".gz",sep="")) ,
> tmptrialinfo[1,32],secs,sdm),secs,binsize)
>
> Can I use "assign" instead? How should it be coded then?
>
> Thanks!
>
> - John
>
> On Mon, Dec 8, 2008 at 10:40 AM, Jim Holtman <jholtman at gmail.com>
> wrote:
> > ?get
> >
> >
> > Sent from my iPhone
> >
> > On Dec 8, 2008, at 7:11, "tsunhin wong" <thjwong at gmail.com> wrote:
> >
> >> Dear all,
> >>
> >> I'm a newbie in R.
> >> I have a 45x2x2x8 design.
> >> A dataframe stores the metadata of trials. And each trial has its
> own
> >> data file: I used "read.table" to import every trial into R as a
> >> dataframe (variable).
> >>
> >> Now I dynamically ask R to retrieve trials that fit certain
> selection
> >> criteria, so I use "subset", e.g.
> >> tmptrialinfo <- subset(trialinfo, (Subject==24 &
> Filename=="v2msa8"))
> >>
> >> The name of the dataframe / variable of an individual trial can be
> >> obtained using:
> >> paste("t",tmptrialinfo[1,2],tmptrialinfo[1,16],".gz",sep="")
> >> Then I get a string:
> >> "t24v2msa8.gz"
> >> which is of the exact same name of the dataframe / variable of that
> >> trial, which is:
> >> t24v2msa8.gz
> >>
> >> Can somebody tell me how can I change that string (obtained from
> >> "paste()" above) to be a usable / manipulable variable name, so that
> I
> >> can do something, such as:
> >> (1)
> >> tmptrial <- trialcompute(trialextract(
> >> paste("t",tmptrialinfo[1,2],tmptrialinfo[1,16],".gz",sep="")
> >> ,tmptrialinfo[1,32],secs,sdm),secs,binsize)
> >> instead of hardcoding:
> >> (2)
> >> tmptrial <-
> >>
> trialcompute(trialextract(t24v2msa8.gz,tmptrialinfo[1,32],secs,sdm),sec
> s,binsize)
> >>
> >> Currently, 1) doesn't work...
> >>
> >> Thanks in advance for your help!
> >>
> >> Regards,
> >>
> >>     John
> >>
> >> ______________________________________________
> >> 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.
> >
>
> ______________________________________________
> 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.



More information about the R-help mailing list