[R] How to use strings from a data.frame as the argument of an expression() for plot

MrJ Man auxsvr at yahoo.com
Thu Dec 21 00:19:02 CET 2006


Greetings,

I would like to use a data.frame with strings to feed
the expression() in the title of a plot. The way I did
this is:

molecules
<-data.frame(name=c("o3","no","no2"),expression=c("quote(O[3])","quote(NO)","quote(NO[2])"))

for (mol in c(5,7,9)) {
 plot(x, y, type="b",
main=eval(substitute(expression(paste(mol," Year
2005")),
 
list(mol=eval(parse("",text=toString(molecules$expression[(mol-3)/2])))))))
}

However, this looks cumbersome and I'm sure there is a
way to do this in R that is much more simple. The
complexity of the expression above is mainly due to
the fact that the only way I could find to convert a
string read from a data.frame into a symbol was to
enclose it in "quote(symbol)" and call toString on the
result, since selecting string data from a data.frame
returns an object that is not a string (why is this
so? A data.frame with doubles returns doubles).

What do you think?

Thanks in advance.



More information about the R-help mailing list