Guillaume Frechette asked about how to get Stata to recognize certain rational
numbers.
-------------------begin posting excerpt-----------------------
Here's an example
. gen foo = 1/3
. gen bar = 1/3
. gen baz = 1-foo-bar
. tab baz
baz | Freq. Percent Cum.
------------+----------------------------------
.3333333 | 850 100.00 100.00
------------+----------------------------------
Total | 850 100.00
. tab baz if baz == float(1/3)
no observations
Can someone tell me how to get Stata to know to recognize baz as equal to
1/3?
------------------end posting excerpt--------------------------
The only way that I know of is to explicitly provide tolerances as in the example below.
Joseph Coveney
------------------begin Frechette.do--------------------------
clear
set obs 850
generate double foo=1.0/3.0
generate double foo=1.0/3.0
generate double bar=1.0/3.0
generate double baz=1.0-foo-bar
tabulate baz if baz > float(1/3)-0.994e-8 /*
*/ & baz < float(1/3)+0.994e-8
clear
set obs 850
generate float foo=1.0/3.0
generate float bar=1.0/3.0
generate float baz=1.0-foo-bar
tabulate baz if baz > float(1/3)-0.299e-7 /*
*/ & baz < float(1/3)+0.299e-7
end
----------------------end Frechette.do----------------------------
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/