Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: -replace- does not create an exact copy


From   Maarten buis <maartenbuis@yahoo.co.uk>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: -replace- does not create an exact copy
Date   Mon, 26 Oct 2009 08:04:29 +0000 (GMT)

--- On Mon, 26/10/09, Michael McCulloch wrote:
> For some reason, the following command:
> bysort var1 : replace var1 = cond(_n == 1, x, y)
> 
> replaces the variable var1 with a number not *exactly*
> identical, such as:
>     58.29999924 instead of 58.3.
> 
> Although I could say:
>     . format %9.2f,
> 
> that won't find a match for -if-, as in:
>     . ...  if var1==58.3

That is a precision issue, a computer can't store that number 
exactly (think of storing 1/3 in decimal: 0.3333 etc.). There
are a couple of things you can do: replace to 583 rather than 
58.3, as computers can store integers exactly, or use 
- ... if var1==float(58.3)-.

Hope this helps,
Maarten

--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany

http://www.maartenbuis.nl
--------------------------


Send instant messages to your online friends http://uk.messenger.yahoo.com 

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index