# Re: [R] Automatic rounding of values after factors , converted to numeric, are multipled by a real number

From: Peter Dalgaard <p.dalgaard_at_biostat.ku.dk>
Date: Fri 21 Oct 2005 - 00:20:10 EST

"Nelson, Gary (FWE)" <Gary.Nelson@state.ma.us> writes:

> Peter,
>
> Thank you for your response. I knew how close the values are to
> integers, but I still don't understand why I don't have control over
> how the numbers are displayed (rounded or not)?

It's all in the conventions. The digits in print() and friends are significant digits, so we first round to that many significant digits, then discard trailing zeros, which is why

> 12.500001

[1] 12.5
> 12.50001

[1] 12.50001

The exception is that we do not discard significant digits to the left of the decimal point, unless we are using scientific notation

> print(12345678,digits=2)

[1] 1.2e+07
> print(12345678,digits=5)

[1] 12345678

(the "scipen" options controls the logic for switching notation).

For finer control we have the formatC function:

> format(1234.00001,digits=9) # same thing as with print()
[1] "1234.00001"
> format(1234.00001,digits=8)

[1] "1234"
> formatC(1234.00001,digits=5,format="f")
[1] "1234.00001"
> formatC(1234.00001,digits=4,format="f")
[1] "1234.0000"

```--
O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help