Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Using tsset on panel data that are differentiated by two id variables |
Date | Wed, 7 Nov 2012 21:29:32 +0000 |
There is a general discussion at SJ-7-4 dm0034 . . . Stata tip 52: Generating composite categorical variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox Q4/07 SJ 7(4):582--583 (no commands) tip on how to generate categorical variables using tostring and egen, group() .pdf at http://www.stata-journal.com/sjpdf.html?articlenum=dm0034 But your last remark rules that out. So why is #2 not working? Because by default your new variable is -float-. Make it -double- and read Bill Gould's blogs on precision every day until memorised! Nick On Wed, Nov 7, 2012 at 8:35 PM, Ben Hoen <bhoen@lbl.gov> wrote: > I have run into problems setting a set of data as panel because my panels > are differentiated by two numeric ids (muni_code %8.0g & parcel_id %12.0g) > both with values 1 to 999,999. For example I might have the following cases. > > muni_code parcel_id > 22000 59 > 22000 60 > 22000 600 > 22000 601 > 27600 32199 > > Because I cannot use a var list (at least I don’t think I can) as panel > variables in tsset, I would like to combine the variables while also > preserving the ids so that they are both usable as a merge variable and are > descriptive in their values. So, for example, I tried: > > 1) Using tostring to make a variable (muni_parcel_text) that looked like > this “22000.59” “22000.60” “22000.600”, “22000.601” and “22000.5983” and so > on but the tsset wont accommodate a string variable > > 2) I then tried using the following formula .g muniparcel=(muni_id*100000) + > parcel_id, which I then formatted as %12.0f (.format muniparcel %12.0f) but > strangely got weird values such as 22000060, 2200000000, 2200000000, > 22000000512 and 2200000512, and 2760032256, respectively. I would have > expected to get 22000000059, 22000000060, 22000000600, 22000000601, and > 27600032199, respectively. > > Any idea how to how best to use these two variables as a panel variable, > while preserving their values in some way? Seperately, any idea why option > #2 is not resulting in the expected answer? > > > FYI, for one file, I could just use .egen muniparcel=group(muni_code > parcel_id) and use muniparcel as the panel variable, but then I would not be > able to merge with another dataset because the group numbers would not > necessarily align. * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/