Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

st: RE: Problems rounding a variable using round()


From   Kieran McCaul <kieran.mccaul@uwa.edu.au>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   st: RE: Problems rounding a variable using round()
Date   Sun, 25 Mar 2012 12:57:06 +0800

This is a precision problem. Try:
count if y == float(0.6)

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of L S
Sent: Sunday, 25 March 2012 12:03 PM
To: statalist@hsphsun2.harvard.edu
Subject: st: Problems rounding a variable using round()

Hi,

I am creating a variable that is the average of 5 0/1 variables.
However, instead of taking values on {0,.2,.4.6,.8,1}, it is taking
values like .40000001 and .60000002.  I tried to use the round()
command as below, but it's not working.  Any thoughts on how I can
make y take on the values {0,.2,.4.6,.8,1}?

Thank you.

clear
set obs 1000

set seed 1234

forvalues i=1/5{
	gen x`i'=(uniform()>.5)
}

gen y = (1/5)*(x1+x2+x3+x4+x5)
* browse y
count if y==.6

replace y= round(y,.1)
count if y==.6
*
*   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/

*
*   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   |   Site index