[R] Correct (was 'weird') behavior of nsmall in format
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Feb 14 08:35:27 CET 2006
On Mon, 13 Feb 2006, Adrian Dragulescu wrote:
>> From the help page of format, nsmall should control the number of digits.
That's not a quote from the help page.
>> format(0.123456789, nsmall = 10)
> [1] "0.1234567890"
>> format(0.123456789, nsmall = 1)
> [1] "0.1234568"
>> format(0.123456789, nsmall = 2)
> [1] "0.1234568"
>> format(0.123456789, nsmall = 8)
> [1] "0.12345679"
>
> It adds zeros fine but for format(0.123456789, nsmall = 1) I want the
> result to be 0.1.
>
> I want to format numbers with a fixed number of digits. A combination of
> round and format + nsmall does the job. sprintf will do it too, but I
> wondered if the current implementation of nsmall in format is correct.
It is, but your reading of the help page is not. The help page
actually says
digits: how many significant digits are to be used for numeric and
complex 'x'. The default, 'NULL', uses 'getOption(digits)'.
This is a suggestion: enough decimal places will be used so
that the smallest (in magnitude) number has this many
significant digits, and also to satisfy 'nsmall'. (For the
intepretation for complex numbers see 'signif'.)
nsmall: number of digits which will always appear to the right of the
decimal point in formatting real/complex numbers in
non-scientific formats. Allowed values are '0 <= nsmall <=
20'.
Note the `always'.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list