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.

Reply via email to