Yup, I want these as labels on plots, but I need it as: D (mg kg^-1) rather
than "D (mg kg)^-1".

Sorry for not being more clear and thanks for your help.

Cheers


On Wed, Apr 3, 2013 at 6:44 PM, David Winsemius <dwinsemius@comcast.net>wrote:

>
> On Apr 3, 2013, at 9:06 AM, Shane Carey wrote:
>
> > Hi,
> >
> > If I have data as follows:
> > DATA_names<-c(
> > "A mg kg"
> > "B mg kg"
> > "C mg kg"
> > "D mg kg"
> > "E mg kg"
> > "F mg kg"
> > "G mg kg"
> > "H mg kg"
> >
> > How do I convert to:
> >             -1
> > A (mg kg   )
> >             -1
> > B (mg kg   )
> >             -1
> > C (mg kg   )
> >             -1
> > D (mg kg   )
> >             -1
> > E (mg kg   )
> >             -1
> > F (mg kg   )
> >             -1
> > G (mg kg   )
> >             -1
> > H (mg kg   )
> >
> > I have lots of elements and I need to do this automatically in a for loop
> > or the like?
>
> You haven't described the task in very much detail, so Bill Dunlap's
> language-oriented (more "expressive" as it were) solution my be what you
> really need. Nonetheless, this answer stays on the character-plane of R's
> conceptual levels:
>
>  gsub("mg kg", "(mg kg)^-1", DATA_names)
> [1] "A (mg kg)^-1" "B (mg kg)^-1" "C (mg kg)^-1" "D (mg kg)^-1" "E (mg
> kg)^-1" "F (mg kg)^-1"
> [7] "G (mg kg)^-1" "H (mg kg)^-1"
>
> If you wanted these in an expression vector suitable for labels on a
> barplot or such:
>
> sapply(gsub("mg kg", "(mg kg)^-1", DATA_names), as.expression)
>
> expression(`A (mg kg)^-1` = "A (mg kg)^-1", `B (mg kg)^-1` = "B (mg
> kg)^-1",
>     `C (mg kg)^-1` = "C (mg kg)^-1", `D (mg kg)^-1` = "D (mg kg)^-1",
>     `E (mg kg)^-1` = "E (mg kg)^-1", `F (mg kg)^-1` = "F (mg kg)^-1",
>     `G (mg kg)^-1` = "G (mg kg)^-1", `H (mg kg)^-1` = "H (mg kg)^-1")
>
> In practice:
>
> > pos <- barplot(1:length(DATA_names))
> > text(x=pos,y=-1, xpd=TRUE, srt=45,
>                    labels= sapply( gsub("mg kg", "(mg kg)^-1", DATA_names),
>                                    as.expression))
>
>
> --
> David Winsemius
> Alameda, CA, USA
>
>


-- 
Shane

	[[alternative HTML version deleted]]

