Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

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

From |
P C <calicep@yahoo.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: RE: loop question |

Date |
Tue, 30 Nov 2010 11:15:42 -0800 (PST) |

Thanks for the reply. Basically, I have twenty variables in the data set. They have the same suffix: w1flsibage. They all ended up with different numbers. The twenty variables go like this: w1flsibage1 w1flsibage2 .... w1flsibage20. These variables indicate sibling's age. Then I compare each of the above variable with another variable: w1ageint (respondent's age). I need to calculate how many of the above 20 variables have values that are greater than w1ageint. In this way, I would know how many siblings a respondent would have that are older the respondent. In this case, how should I write out the program? Thanks ----- Original Message ---- From: Nick Cox <n.j.cox@durham.ac.uk> To: "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> Sent: Tue, November 30, 2010 11:55:27 AM Subject: st: RE: loop question First off, a -foreach- loop over the integers 1/20 is better written as a -forval- loop forval n = 1/20 { } But more importantly, 1. Looping sounds a bad way to do what you want. 2. You are treating macros as if they were variables, which is a major misunderstanding. You'd be better off explaining the structure of your data and what you want to do in words, and then you'll probably get better advice on what you should do. Nick n.j.cox@durham.ac.uk P.S. please see Statalist advice: http://www.stata.com/support/faqs/res/statalist.html#tojoin especially 2.1.3. P C === I have a loop question. I want to do something like this: local i=0 gen w1ttflsbyger=. foreach n in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20{ replace w1ttflsbyger=`i'+1 if w1flsibage`n'<w1ageint & w1flsibage`n'!=. & w1ageint~=. replace i=`i'+1 if w1flsibage`n'<w1ageint & w1flsibage`n'!=. & w1ageint~=. } Of course, the last line of the syntax was wrong. Basically, I want to write something to let "i" to increase by 1 if the condition: "w1flsibage`n'<w1ageint & w1flsibage`n'!=. & w1ageint~=." are satisfied. Otherwise, "i" won't increase by 1 and will jump out of the loop. How should I write the loop? * * 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/

**Follow-Ups**:**RE: st: RE: loop question***From:*Nick Cox <n.j.cox@durham.ac.uk>

**References**:**st: loop question***From:*P C <calicep@yahoo.com>

**st: RE: loop question***From:*Nick Cox <n.j.cox@durham.ac.uk>

- Prev by Date:
**Re: st: --more-- override from a .do file** - Next by Date:
**RE: st: RE: loop question** - Previous by thread:
**st: RE: loop question** - Next by thread:
**RE: st: RE: loop question** - Index(es):