Hi,
May be this helps:
?gsub("_"," ",gsub("(.*)_.*","\\1",DATA_names))
#[1] "A ugkg"? "S mgkg"? "Cl mgkg"
sapply(gsub("_"," ",gsub("(.*)_.*","\\1",DATA_names)),f)
$`A ugkg`
A ~ (mu * g ~ kg^{
??? -1
})
$`S mgkg`
S ~ (mg ~ kg^{
??? -1
})
$`Cl mgkg`
Cl ~ (mg ~ kg^{
??? -1
})
A.K.
----- Original Message -----
From: Shane Carey <careyshan at gmail.com>
To: "r-help at r-project.org" <r-help at r-project.org>
Cc:
Sent: Tuesday, July 9, 2013 7:20 AM
Subject: [R] Labelling
Hi,
I have the following data as labels:
DATA_names<-c("A_ugkg_FA","S_mgkg_XRF" ,"Cl_mgkg_XR")
and I need to convert to
? ? ? ? ? ? -1
A (ug kg? ? )
? ? ? ? ? ? -1
S (mg kg? ? )
? ? ? ? ? ? ? -1
Cl (mg kg? ? )
I used the following piece of code to convert the following labels in the
past, but cant get it to work for the new labels:
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))
}
The labels in the past were:
DATA_names<-c("A_ugkg","S_mgkg" ,"Cl_mgkg")
Thanks