Statalist


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

st: AW: RE: Problems adding large numbers


From   "Martin Weiss" <martin.weiss1@gmx.de>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: AW: RE: Problems adding large numbers
Date   Wed, 28 Oct 2009 14:02:27 +0100

<> 

So Shruti should probably specify a safe -format- for -egen, concat()-
because its default will lead him astray, just as he seemed to imply towards
the end of his initial post...



*************
clear*
set obs 2

gen /*double */  HHID=16817000  
gen PERNUM=4
replace PERNUM= 5 in 2

gen double x1=HHID+PERNUM
gen x2=string(HHID)+string(PERNUM)
egen x3=concat(HHID PERNUM)
egen x4 = concat(HHID PERNUM),  /* 
*/ format("%15.0f")

list, noo
*************



HTH
Martin


-----Ursprüngliche Nachricht-----
Von: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Nick Cox
Gesendet: Mittwoch, 28. Oktober 2009 13:50
An: statalist@hsphsun2.harvard.edu
Betreff: st: RE: Problems adding large numbers

As Martin Weiss has implied, this is a precision problem. It is aired
monthly (if not weekly) on this list. 

You could tackle it by specifying storage type as in Martin's code. 

Alternatively, hold the identifiers as strings. You can combine by
concatenation. -egen, concat()- will do that for you and handle any
conversion issues. 

That practice is entirely consistent with identifiers having numeric
characters as content, later extraction of substrings, etc. 

Nick 
n.j.cox@durham.ac.uk 

Shruti Kapoor


i have a huge individual level dataset. I am trying to generate a new
variable x which is the sum of my household id(HHID) and person number
in each household (PERNUM) for some condition if it is true.

The problem i am facing is that at very large values of HHID lets say
16817000, if the PERNUM is 4 and 5 if should generate variable x =
16817004 and 16817005. What stata is doing is rounding off the numbers
so that i am getting the same values for both PERNUM 4 and 5. This is a
problem because it is no longer creating a unique value of X which i
need.

I string to convert the two variables into string and then creating x =
HHID + PERNUM, but now i am getting answers like 1.68e10+05. How can i
resolve this issue such that it creates a unique value for each
individual in the household and x stays numeric?


*
*   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   |   What's new   |   Site index