Richard Longland wrote: > Thanks for the help. This substitute command might be what I'm after, > but, the whole string is being read in from a file. So I can't > explicitly write the thing out as you did in your example, as with your > example in R-news. > > My rules are: > Convert any ",g" or "g," to ",gamma" or "gamma," > (This comma search avoids converting the Mg to Mgamma!) > Make ANY number a superscript. > > Currently, this is what I do: > > # Read in the reaction name, not very elegant I know > ReacName <- > as.character(read.table("file.dat",skip=0,header=FALSE,nrows=1)$V1) > print(ReacName) > > # convert and numbers and g > ReacName <- sub(",g",",gamma",ReacName) > ReacName <- sub("g,","gamma,",ReacName) > ReacName <- gsub("([1-9])","phantom()^\\1",ReacName)
replace the last line by ReacName <- gsub("([[:digit:]]+)", "phantom()^{\\1}*", ReacName) and later perhaps something ugly like plot(1:10, main=parse(text=ReacName))) Uwe Ligges > print(ReacName) > > > This results in: > 25Mg(p,g) > phantom()^2phantom()^5Mg(p,gamma) > > Just to clarify quickly, The text will always be different. The Mg could > be Al, S etc. The p could be different also. So the whole name has to be > automated into the plot title. > > I imagine it's possible to split this string into pieces... but there > must be a better and easier way to do this. > > Thanks again for the help, > Richard > > > > > > On Tue, 2008-01-29 at 18:54 +0100, Uwe Ligges wrote: >> Richard Longland wrote: >>> Hi, >>> >>> Although I understand how to use expression and paste to add >>> superscripts and symbols to my graphs, I have a problem with adding >>> superscripts to an existing string. >>> >>> For example, I read in the following from a separate file: >>> 25Mg(p,g) >>> >>> I want to convert that to superscripts etc. (in LaTex format): >>> $^{25}$Mg(p,$\gamma$) >>> >>> This needs to then be put into a graph title. >>> >>> Any ideas? I know that I can just write it in using expression and >>> paste, but the title is read in from a separate file. >> >> If you explain what the rules are to use superscript or greek letters >> (why is the p not converted to pi but the g to gamma, etc?), we ca help, >> as an example if you read just the number from a file: >> >> #number <- scan(that_file) >> # say you read >> number <- 25 >> >> plot(1:10, main=substitute(phantom()^number * Mg(p, gamma), >> list(number=number))) >> >> See ?plotmath and for automating things like this my article in R News >> might help: >> Ligges, U. (2002): R Help Desk: Automation of Mathematical Annotation in >> Plots. R News 2 (3), 32-34. >> >> Best, >> Uwe Ligges >> >> >> >> >>> Cheers for the help, >>> Richard longland >>> >>> ______________________________________________ >>> 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.