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
-- 
Shane
	[[alternative HTML version deleted]]
Are you saying that you want to ignore the additional suffixes, _FA, _XRF,
and _XR?  If so, you can do so like this,
     sapply(strsplit(DATA_names, "_"), function(x) paste(x[1:2],
collapse="_"))
If not, what do you want to happen with those suffixes?
Jean
On Tue, Jul 9, 2013 at 6:20 AM, Shane Carey <careyshan@gmail.com> wrote:
> 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
>
> --
> Shane
>
>         [[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.
>
	[[alternative HTML version deleted]]
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
-- 
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.