I have several datasets that come from different studies (fv02 and fv03), they represent different levels (patients and lesions), and they have different patient populations (itt, mitt, mitt3). I wanted to write some code that would pass my three requirements into a function I wrote, produce the output, but not have to require me to also pass a unique plot title or output filename for each function call. The title and file name would be created in the function according to the three input parameters. My datasets are named like this (all six are repeated for "fv03" in place of "fv02"): fv02patients.itt fv02patients.mitt fv02patients.mitt3 fv02lesions.itt fv02lesions.mitt fv02lesions.mitt3 Taking the first dataset as an example, I currently have this code: study="fv02" level="patients" population="itt" noquote(paste(study,level,".",population,sep="")) This produces the desired fv02patients.itt, but it is just an unquoted character string rather than a data frame. Here is a condensed look at my function: waterfall=function(data,title,file) { barplot(height=data$brpercent,main=paste("Best Change in Tumor Volume\n",title)), savePlot(filename=file,type="pdf") } waterfall(data=fv02patients.itt,title="EC-FV-02 ITT Patients",file=fv02_itt_patients_waterfall") It may be easier to leave it the way I have it, but if this is possible, I would still be interested in knowing. -- View this message in context: http://r.789695.n4.nabble.com/Treat-an-Unquoted-Character-String-as-a-Data-Frame-tp3781372p3781372.html Sent from the R help mailing list archive at Nabble.com.
Try this data <- eval(parse(text=paste(study, level, ".", population, sep=""))) Jean ----- dbateman wrote on 08/31/2011 17:44:44: I have several datasets that come from different studies (fv02 and fv03), they represent different levels (patients and lesions), and they have different patient populations (itt, mitt, mitt3). I wanted to write some code that would pass my three requirements into a function I wrote, produce the output, but not have to require me to also pass a unique plot title or output filename for each function call. The title and file name would be created in the function according to the three input parameters. My datasets are named like this (all six are repeated for "fv03" in place of "fv02"): fv02patients.itt fv02patients.mitt fv02patients.mitt3 fv02lesions.itt fv02lesions.mitt fv02lesions.mitt3 Taking the first dataset as an example, I currently have this code: study="fv02" level="patients" population="itt" noquote(paste(study,level,".",population,sep="")) This produces the desired fv02patients.itt, but it is just an unquoted character string rather than a data frame. Here is a condensed look at my function: waterfall=function(data,title,file) { barplot(height=data$brpercent,main=paste("Best Change in Tumor Volume\n",title)), savePlot(filename=file,type="pdf") } waterfall(data=fv02patients.itt,title="EC-FV-02 ITT Patients",file=fv02_itt_patients_waterfall") It may be easier to leave it the way I have it, but if this is possible, I would still be interested in knowing. [[alternative HTML version deleted]]
Liviu Andronic
2011-Sep-01 17:55 UTC
[R] Treat an Unquoted Character String as a Data Frame
On Thu, Sep 1, 2011 at 5:48 PM, Jean V Adams <jvadams at usgs.gov> wrote:> Try this > > data <- eval(parse(text=paste(study, level, ".", population, sep=""))) >..or this: data <- get(paste(study, level, ".", population, sep="")) Liviu> Jean > > ----- > > dbateman wrote on 08/31/2011 17:44:44: > > I have several datasets that come from different studies (fv02 and fv03), > they represent different levels (patients and lesions), and they have > different patient populations (itt, mitt, mitt3). ?I wanted to write some > code that would pass my three requirements into a function I wrote, > produce the output, but not have to require me to also pass a unique plot > title or output filename for each function call. ?The title and file name > would be created in the function according to the three input parameters. > > My datasets are named like this (all six are repeated for "fv03" in place > of "fv02"): > ? fv02patients.itt > ? fv02patients.mitt > ? fv02patients.mitt3 > ? fv02lesions.itt > ? fv02lesions.mitt > ? fv02lesions.mitt3 > > Taking the first dataset as an example, I currently have this code: > ? study="fv02" > ? level="patients" > ? population="itt" > ? noquote(paste(study,level,".",population,sep="")) > > This produces the desired fv02patients.itt, but it is just an unquoted > character string rather than a data frame. > > Here is a condensed look at my function: > > waterfall=function(data,title,file) > { ? ? ? barplot(height=data$brpercent,main=paste("Best Change in Tumor > Volume\n",title)), > ? ? ? ?savePlot(filename=file,type="pdf") > } > waterfall(data=fv02patients.itt,title="EC-FV-02 ITT > Patients",file=fv02_itt_patients_waterfall") > > > It may be easier to leave it the way I have it, but if this is possible, I > would still be interested in knowing. > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Do you know how to read? http://www.alienetworks.com/srtest.cfm http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader Do you know how to write? http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail