Statalist


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

Re: st: Problem with replace if - test condition works only for some values of test variable


From   Philip Ryan <[email protected]>
To   [email protected]
Subject   Re: st: Problem with replace if - test condition works only for some values of test variable
Date   Fri, 24 Oct 2008 09:24:07 +1030

Alas, it appears that float does _not_ provide sufficient precision for your task. To say that "if the test can recognize .25 it should be able to recognize .26" is anthropomorphising a piece of silicon (and its binary instruction set) and it just doesn't work. I know, I try it regularly, and I never win.

Have a look at the FAQs on problems with precision and remedies (-findit precision-)

Phil


At 09:02 AM 24/10/2008, you wrote:
Please, indulge me. I'm sure I've overlooked something basic, but
replace if is working only for certain values of the test variable and
not for others.

Start with any dataset open
Here is the code fragment that replicates my problem:

ge y=.
generate x= (_n/100)-0.01 in 1/101
replace y=1 if x==0
replace y=1 if x==.01
replace y=1 if x==.25
replace y=1 if x==.26
replace y=1 if x==.5
replace y=1 if x==.51
replace y=1 if x==.75
replace y=1 if x==.76
replace y=1 if x==1
replace y=1 if x==.99

I'm able to make assignments to y only when x equals 0, .25, .5, .75,
and 1 but for no other value. This is the output I get:

. replace y=1 if x==.5
(1 real change made)

. replace y=1 if x==.51
(0 real changes made)

Why does this happen and how do I fix it? x is a float, so it should
have enough precision for the test condition. And if the test can
recognize .25 it should be able to recognize .26.

Thanks

N
*
*   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/

Philip Ryan
Professor,
Discipline of Public Health
Director, Data Management & Analysis Centre
University of Adelaide

*
*   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index