[R] Superscript

William Dunlap wdunlap at tibco.com
Wed Apr 3 18:33:41 CEST 2013


Are you trying to convert a column name like "Na_mgkg" to a plot label like Na (mg kg^-1) ?
If so you will have to use both string manipulation functions like gsub() and expression manipulating
functions like bquote().  E.g.,

f <- function (name) 
{
   # add other suffices and their corresponding plotmath expressions to the list
   env <- list2env(list(mgkg = bquote(mg ~ kg^{-1}),
                        ugkg = bquote(mu * g ~ kg^{-1})),
                   parent = emptyenv())
   pattern <- paste0("_(", paste(objects(env), collapse="|"), ")")
   bquoteExpr <- parse(text=gsub(pattern,
                                 "~(.(\\1))",
                                 name))[[1]]
   # I use do.call() to work around the fact that bquote's first argument is not evaluated.
   do.call(bquote, list(bquoteExpr, env))
}

d <- data.frame("Na_mgkg"=1:10, "K_ugkg"=10:1)
plot(Na_mgkg ~ K_ugkg, data=d, xlab=f("K_ugkg"), ylab=f("Na_mgkg"))

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Shane Carey
> Sent: Wednesday, April 03, 2013 8:02 AM
> To: r-help at r-project.org
> Subject: [R] Superscript
> 
> Hi,
> How do I write a superscript within gsub?
> 
> I have the following: gsub("_mgkg",expression(paste("mg kg"^{-1})),names[1])
> 
> Thanks
> 
> 
> 
> --
> Shane
> 
> 	[[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.



More information about the R-help mailing list