[Rd] signif {base}: changes to scientific notation

Wolfram Fischer - Z/I/M wolfram@fischer-zim.ch
Thu Feb 6 16:40:03 2003


PROBLEM
    `signif' does change to scientic notation
    at different levels depending on the number
    of significant digits in the input.

    This can generate tables where figures change
    ``irregularly'' from normal to scientific notation.


PROPOSAL
    The change to the scientific notation should
    be made only if the figure in scientific notation
    - with potentially as many significant digits as 
	given as argument to the call of `signif' -
    would be shorter than the figure in normal notation.


EXAMPLE

test.signif <- function( d=2, n=9 ){
    for( i in 1:n )
        cat( paste( sep='\t'
                , i
                , signif( 10^i * 1     , d )
                , signif( 10^i * 1.2   , d )
                , signif( 10^i * 1.23  , d )
                , signif( 10^i * 1.234 , d )
                )
            , '\n'
            )
}

> test.signif(4)
1       10      12      12.3      12.34 
2       100     120     123       123.4 
3       1000    1200    1230      1234 
4       10000   12000   12300     12340 
5       1e+05   120000  123000    123400 
6       1e+06   1200000 1230000   1234000 
7       1e+07   1.2e+07 12300000  12340000 
8       1e+08   1.2e+08 1.23e+08  123400000 
9       1e+09   1.2e+09 1.23e+09  1.234e+09

I would expect/propose that the scientific notation in this
example with 4 significant digits begins only at line 9 in 
all columns.


Wolfram