Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: How to speed up loop


From   "Nichols, Austin" <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   st: RE: How to speed up loop
Date   Wed, 15 Sep 2004 12:01:49 -0400

-egen- is very slow...
and I assume you can never do max by hhid, because you might have a
grandmother, mom, and kid, two of whom would have mother's age defined.

How about something like (untested):
. gen int mom_kids=mlineno 
. replace mom_kids=lineno if mlineno==.
. sort hhid mom_kids age
. by hhid mom_kids: gen momsage=age[_N]

to start, then worry about grandma next?


-----Original Message-----
From: Friedrich Huebler [mailto:[email protected]]
Sent: Wednesday, September 15, 2004 11:33 AM
To: [email protected]
Subject: st: How to speed up loop


I am looking for advice to speed up a loop. The loop determines
characteristics of other household members in household survey data
and is taken from this Stata FAQ:

http://www.stata.com/support/faqs/data/members.html

The data has the variables hhid (household ID), lineno (line number
of household member), age, and mlineno (mother's line number).

hhid    lineno       age   mlineno
   1         1        32         .
   1         2        30         .
   1         3         5         2
   2         1        68         .
   2         2        41         1
   2         3        40         .
   2         4        17         3
   2         5        14         3

The following code creates the variable mage with the mother's age.

gen byte mage=.
sum lineno, meanonly
forvalues i = 1/`r(max)' {
  gen byte tag = 1 if lineno==`i'
  bysort hhid: egen byte iage = max(tag*age)
  replace mage=iage if mlineno==`i'
  drop tag iage
  }

I tried changing -bysort hhid- to -by hhid- but the time needed for
the loop is the same. Running the loop -quietly- also makes no
difference. Can anything be done to make this loop go faster?

Thank you,

Friedrich Huebler



		
__________________________________
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail
*
*   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/
*
*   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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index