[R] Re: Bug or new concept in formatC? -- neither

Martin Maechler maechler at stat.math.ethz.ch
Fri Oct 26 14:26:15 CEST 2001


>>>>> "BXC" == BXC (Bendix Carstensen) <bxc at novonordisk.com> writes:

    BXC> As a sequel to my previous mail on cut, formatC does not produce
    BXC> what I have been taught is significant digits:

    >> x <- c(1.0793,1.0796, 11.0954, 11.0736 )
    >> formatC(x,digits=3,format="g")
    BXC> [1] "1.08" "1.08" "11.1" "11.1"

    BXC> (3,3,3,3) significant digits OK

    >> formatC(x,digits=3,format="f")
    BXC> [1] "1.079" "1.080" "11.095" "11.074"

    BXC> (3,3,3,3) digits after point, [(4,4,5,5) significant] OK

    >> formatC(x,digits=4,format="g")
    BXC> [1] "1.079" " 1.08" " 11.1" "11.07"

    BXC> (4,3,3,4) significant digits --- not OK (?)

    BXC> Apparently formatC thinks that trailing 0s cannot count as
    BXC> significant.  Is this a bug or another concept of significant
    BXC> digits?

No, it's just how ISO C (ANSI C) defines the behavior of the "g" format for
(s)printf.
However, there's also a flag argument (also well defined by ISO C) which
helps here, see below.
Yes, the help(formatC) page proably could explain all this, since nowadays
not everyone has a version of Kernighan&Ritchie close at hand (I still do).
Patches for  src/library/base/man/formatc.Rd are very welcome...

What you want, Bendix, is   flag = "#" :

> formatC(c(1.0793,1.0796, 11.0954, 11.0736),digits=4,format="g")
[1] "1.079" " 1.08" " 11.1" "11.07"

> formatC(c(1.0793,1.0796, 11.0954, 11.0736),digits=4,format="g",flag="-")
[1] "1.079" "1.08 " "11.1 " "11.07"

> formatC(c(1.0793,1.0796, 11.0954, 11.0736),digits=4,format="g",flag="0")
[1] "1.079" "01.08" "011.1" "11.07"

> formatC(c(1.0793,1.0796, 11.0954, 11.0736),digits=4,format="g",flag="#")
[1] "1.079" "1.080" "11.10" "11.07"
		 

Martin Maechler <maechler at stat.math.ethz.ch>	http://stat.ethz.ch/~maechler/
Seminar fuer Statistik, ETH-Zentrum  LEO D10	Leonhardstr. 27
ETH (Federal Inst. Technology)	8092 Zurich	SWITZERLAND
phone: x-41-1-632-3408		fax: ...-1228			<><
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list