I tried writing that function before, but the expression() command is not preserved when we incorporate it into a function(). The first example you gave me, if run in R, produced a title that reads "title" instead of "stuff". It seems that in this case the expression() can't read the character string in the argument specified in the function() command.
-----Original Message----- From: Kevin Coombes [mailto:kevin.r.coom...@gmail.com] Sent: Monday, May 10, 2010 12:08 PM To: Shang Gao Cc: r-help@r-project.org Subject: Re: [R] Supercripting text You probably want to write your own titling function to add superscripts. The following code will serve as a reasonable starting point: # make the title expression ourtitle <- function(title, footnotes=NULL) { if (length(footnotes) > 0) { fn <- paste(footnotes, collapse=' ') title <- eval(substitute(expression(bold(paste(title, ""^fn))), list(fn=fn))) } title } # example with footnotes tt <- ourtitle("stuff", 1:3) plot(1, 1) title(tt) # example without footnotes plot(1, 1) title(ourtitle("stuff")) Note that the only way I could make this work was to combine the footnote list before calling the eval-substitute-expression code; I cannot get it to work by applying things ot a list. Kevin Shang Gao wrote: > Dear R users, > > I recently developed a plotting function in R and introduced it to my > coworkers. The function is designed to make plotting easier and more > efficient, which will in turn be more cost-effective for the company. The > reviews for the function have been positive thus far, except for one issue -- > addition of superscripts to the title. We need superscipts in the titles > sometimes to highlight footnotes which appear at the bottom of the plots. > > The syntax for supersciprts, however, is rather cumbersome, especially in > titles since it needs to be bolded. So far the only way of superscripting is > to use the expression() function. But to go about formatting the text such > that it appears bolded as a title in my plots, I would have to type in the > command > >> text(expression(bold(paste("text for title",""^1)))....) >> > > In some cases, the plot would require 3 footnotes to be shown, and the code > would be > >> text(expression(bold(paste("text for title",""^1, " "^2, " "^3))).....) >> > > Most of my coworkers are still in the process of picking up R, some have > never used R before. The above commands may be a little too much for them to > handle. > > Is there an easier way of superscripting texts in R? It would be great if any > of you know of alternative ways other than using the expression() function. > > I greatly appreciate your help. > > Thank you. > > Sincerely, > Shang > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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@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.