[R] Numeric formatting question
Marc Schwartz
marc_schwartz at me.com
Tue Nov 10 14:31:14 CET 2009
On Nov 10, 2009, at 7:23 AM, Michael Pearmain wrote:
> Hi All,
>
> I have am using Sweave and the \Sexpr{} to place some numeric
> variables in
> my tex document. I want to format the number prior to entry so they
> read
> slightly more elegantly.
> Say i have the following numbers
> x <- 0.00487324
> y <- 0.000000432
> z <- 0.567
>
> I would like to have the numbers displayed as follows
>
> x1 <- 0.0049
> y1 <- 0.00000043
> z1 <- 0.57
>
> I've seen i can use sprintf("%.3f", pi) for example to get the
> formating
> after the decimal place, but i can't figure out an elegant way to
> find the
> position of the first non-zero entry to allow me to substitute this
> value
> into the sprintf command.
>
> Can anyone offer any advise?
>
> Thanks in advance
>
> Mike
It looks like you want the numbers formatted to 2 significant digits,
rather than to a fixed number of decimal places. Thus, use:
> format(x, digits = 2, scientific = FALSE)
[1] "0.0049"
> format(y, digits = 2, scientific = FALSE)
[1] "0.00000043"
> format(z, digits = 2, scientific = FALSE)
[1] "0.57"
See ?format and note the 'digits' and 'scientific' arguments.
HTH,
Marc Schwartz
More information about the R-help
mailing list