From: Charles Dupont <charles.dupont_at_vanderbilt.edu>

Date: Thu 18 Jan 2007 - 17:06:29 GMT

>> Hello everyone,

*>>
*

*>> I use latex() (Hmisc) for report generation and thus have been affected by
*

*>> the problem with rounding decimals described, for example, in this post:
*

*>>
*

*>> http://thread.gmane.org/gmane.comp.lang.r.general/73287/focus=73287
*

*>>
*

*>> In short, numbers often are printed with 15 or so decimals even if there
*

*>> far less significant digits. The problem has been confirmed by Frank
*

*>> Harrell and Thomas Dupont according to this post:
*

*>>
*

*>> http://thread.gmane.org/gmane.comp.lang.r.general/73172/focus=73186
*

*>>
*

*>> But it has still not been fixed. Rather than changing all my reports I
*

*>> decided I'd look at format.df() in Hmisc myself and try to fix the problem
*

*>> there. I found that the problem is not in Hmisc at all, but in R itself:
*

*>>
*

*>>> print(1.001)
*

*>> [1] 1.001
*

*>>> options(digits=16) #format.df does this
*

*>>> print(1.001)
*

*>> [1] 1.001000000000000
*

*>>> print(round(1.001, 3)) #rounding does not help
*

*>> [1] 1.001000000000000
*

*>>
*

*>> This does not seem to be the behaviour described in the documentation,
*

*>> which says:
*

*>>
*

*>> "The same number of decimal places is used throughout a vector,[sic!] This
*

*>> means that digits specifies the minimum number of significant digits to be
*

*>> used, and that at least one entry will be encoded with that minimum
*

*>> number. However, if all the encoded elements then have trailing zeroes,
*

*>> the number of decimal places is reduced until at least one element has a
*

*>> non-zero final digit."
*

*>>
*

*>> If print.default() exhibited the behaviour desribed in the docs,
*

*>> format.df() and thus latex() would work as advertised, I think. I would
*

*>> have written a bug report instead of posting here, but the fact (?) that
*

*>> Frank and Thomas have confirmed the bug seems to indicate that the problem
*

*>> does indeed lie with Hmisc. Am I misunderstanding something here?
*

*>>
*

*>> I use R version 2.4.1 Patched (2007-01-13 r40470) on Windows.
*

>> .Machine$double.eps

Date: Thu 18 Jan 2007 - 17:06:29 GMT

Prof Brian Ripley wrote:

> On Mon, 15 Jan 2007, Ulrich Keller wrote: >

>> Hello everyone,

> > The bug is that Hmisc uses more digits than the representation provides: >

>> .Machine$double.eps

> [1] 2.22044604925031e-16 > > If it used 15 digits (as R does for as.character) all would be well. > Since R has to do the calculations you quote in binary arithmetic, they > are also subject to representation error and there is no way they can be > done to 16 significant figures. (I've traced the example, and that is > what happens.) See ?as.character for more details. >

Is there an R object that contains the value of DBL_DIG for the current machine? I have checked '.Machine' and '.Platform' and neither have the value of DBL_DIG in them.

Thank you

Charles Dupont

-- Charles Dupont Computer System Analyst School of Medicine Department of Biostatistics Vanderbilt University ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.Received on Fri Jan 19 04:35:20 2007

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Thu 18 Jan 2007 - 18:30:28 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*