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

From |
Howard Lempel <HLempel@brookings.edu> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
st: RE: Nested loops by observation |

Date |
Mon, 20 Jul 2009 13:30:29 -0400 |

Nick and martin already provided good advice and suggestions for how to get more useful information from Statalist members. In the meantime, you might benefit from the Stata FAQ on the difference between the -if- command and the -if- qualifier. http://www.stata.com/support/faqs/lang/ifqualifier.html Also, if you have a local called "cycle," then `=`cycle'+1' will resolve to the value of `cycle' plus one. I have a feeling that this expression could replace some of the locals you define and simplify your code. -------- start code -------------- local cycle = 1 display "`cycle'" display "`=`cycle'+1'" ------- End code ------------------ Hope this helps. Howie -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of David Sabapathy Sent: Monday, July 20, 2009 12:45 PM To: statalist@hsphsun2.harvard.edu Subject: st: Nested loops by observation I have a question related to the FAQ "if command versus if qualifier". For each observation in a dataset I need to perform a series of nested loops ("forvalues" / "if") on a longitudinal variable set to evaluate whether a "chronic" medication condition exists. That is, each observation contains multiple years of survey information (the dgc* variables below) which is being analyzed and if a chronic condition exists a new variable "chronic" is set to 1. I can't use the nested commands as shown below in a simplified version of the code as they only work on the first observation. However I also can't use this nested code as a qualifier (i.e. replace chronic = 1 if ...) as syntax does not appear to allow this type of nesting. Is there anyway I can step through observations one by one with this nested code? Any other possible solutions? Thank you for any help you can provide, David gen chronic = . forvalues cycle = 1(1)4 { if dgc`cycle'_1b_cde == 0 { // if no med use cycle i local chron_cyc1 = `cycle' + 1 if dgc`chron_cyc1'_1b_cde == 1 { // if med use cycle_i+1 local chron_cyc2 = `cycle' + 2 if dgc`chron_cyc2'_1b_cde == 1 { // if med use cycle_i+2 if dhc`chron_cyc1'_age >=65 & dhc`chron_cyc2'_age >=65 { // "replace chronic = 2" } else { // "replace chronic = 1" } } } } } This message and any attached documents are only for the use of the intended recipient(s), are confidential and may contain privileged information. Any unauthorized review, use, retransmission, or other disclosure is strictly prohibited. If you have received this message in error, please notify the sender immediately, and then delete the original message. Thank you. * * 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/

**References**:**st: Nested loops by observation***From:*David Sabapathy <David.Sabapathy@albertahealthservices.ca>

- Prev by Date:
**Re: st: Memory Issue in XP** - Next by Date:
**Re: st: STATA and NHIS weight variables** - Previous by thread:
**Re: st: Nested loops by observation** - Next by thread:
**st: Memory Issue in XP** - Index(es):

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