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 |
Sergiy Radyakin <[email protected]> |

To |
"[email protected]" <[email protected]> |

Subject |
Re: st: FORVAL loop incomplete |

Date |
Sat, 9 Nov 2013 09:24:29 -0800 |

upps, sorry I overlooked in #2 above that fcf is a variable name in your case, not a command, but sroot also supports an if modifier, see here: http://www.stata-journal.com/sjpdf.html?articlenum=st0172 Try the following loop: local limit=r(max) forval i = 1/`limit' { display "Iteration `i' of `limit'" sroot fcf if id==`i' matrix Zi=r(Z14),r(Z24),r(Z34),r(Z4t),r(Z3t),r(Z2t),r(Z1t) matrix Z=nullmat(Z)\Zi } matrix list Z ----------------- I still don't understand what -append- was supposed to do in the original program :( Sergiy Radyakin On Sat, Nov 9, 2013 at 9:12 AM, Sergiy Radyakin <[email protected]> wrote: > Rick > > 1) your original email mentions that the loop only runs once. Now we > know that the r(max) is > equal to 3 so we expect the loop to have three iterations. The only > way it can do 1 iteration > is if it breaks with an error. To avoid any confusion do the following > adjustment: > > ... > local limit=r(max) > forval i=1/`limit' { > display "This is iteration `i' of `limit'" > ... > > 2) Do you use fcf from here? > https://www.uni-goettingen.de/en/199539.html > If yes, note that it supports if condition. Instead of your "keep if > id==.." you can write "fcf if id==.." > > 3) Your i need to have a meaning. It is either ID or observation > number. This is not necessarily the same. It is definitely not the > same if you have multiple observations of the same subjects, which I > assume you do, since you have time series. This is hugely incompatible > with the -keep- statement, since it also affects the observation > number and hence the working of -in- modifier. > > 4) Whatever results you save with -replace- will be lost after you -restore-. > > 5) Make sure you understand how -append- works. It appends data to > memory from file, not the other way around. If you intend to save > results to file at each iteration look at postfile. > > Sergiy > > > On Sat, Nov 9, 2013 at 8:41 AM, Francis, Richard N <[email protected]> wrote: >> Hi Sergiy, >> >> Thank you for taking time out of your day for such a novice issue. >> >> The entire pgm looks like this: >> >> >> destring gvkey, replace >> >> egen id = group(gvkey), label >> >> gen date = yq(year, fqtr) >> >> tsset id date, quarterly >> >> su id, meanonly >> >> g Z14 = . >> g Z24 = . >> g Z34 = . >> g Z4t = . >> g Z3t = . >> g Z2t = . >> g Z1t = . >> >> forval i = 1/`r(max)' { >> preserve >> keep if id == `i' >> sroot fcf >> return list >> ereturn list >> replace Z14 = r(Z14) in `i' >> replace Z24 = r(Z24) in `i' >> replace Z34 = r(Z34) in `i' >> replace Z4t = r(Z4t) in `i' >> replace Z3t = r(Z3t) in `i' >> replace Z2t = r(Z2t) in `i' >> replace Z1t = r(Z1t) in `i' >> append using new >> restore >> } >> >> R(max) immediately prior to the FORVAL loop is three (3), but I'm not sure this is what you are looking for in your first comment. >> >> Does this help at all? >> >> Again, thank you! >> >> Rick Francis >> >> -----Original Message----- >> From: [email protected] [mailto:[email protected]] On Behalf Of Sergiy Radyakin >> Sent: Saturday, November 09, 2013 9:28 AM >> To: [email protected] >> Subject: Re: st: FORVAL loop incomplete >> >> Rick, >> 1) N may be 180, but what is r(max)? In Stata r(max) is the result of the previous command [of r-class]. You don't show us this command. >> Please do. >> 2) The combination of "append using new" and "restore" does not make sense, Whatever you append you immediately lose. >> 3) If append is meant to add one observation where you are saving the results (dataset new is a blank one observation of the same layout as the current dataset), consider using: expand in _N >> 4) If you want to accumulate the results of your tests, consider using a matrix to hold the results, and avoid modifying the data. >> Best, Sergiy >> >> On Sat, Nov 9, 2013 at 8:14 AM, Francis, Richard N <[email protected]> wrote: >>> I'm sorry, N = 180 obs, currently cycles through the first 60 (3 groups of 60 =180 total obs). >>> >>> Thank you!! >>> >>> Rick Francis >>> >>> -----Original Message----- >>> From: [email protected] >>> [mailto:[email protected]] On Behalf Of Nick Cox >>> Sent: Saturday, November 09, 2013 9:08 AM >>> To: [email protected] >>> Subject: Re: st: FORVAL loop incomplete >>> >>> Tell us what r(max) is. >>> Nick >>> [email protected] >>> >>> >>> On 9 November 2013 15:53, Francis, Richard N <[email protected]> wrote: >>>> Hello Statalist, >>>> >>>> Have a simple FORVAL loop which should result in multiple cycles. >>>> >>>> However, she only cycles once. I'm sure the answer is obvious to experienced Stata users (which I am not). >>>> >>>> The loop is as follows: >>>> >>>> >>>> forval i = 1/`r(max)' { >>>> preserve >>>> keep if id == `i' >>>> sroot fcf >>>> return list >>>> ereturn list >>>> replace Z14 = r(Z14) in `i' >>>> replace Z24 = r(Z24) in `i' >>>> replace Z34 = r(Z34) in `i' >>>> replace Z4t = r(Z4t) in `i' >>>> replace Z3t = r(Z3t) in `i' >>>> replace Z2t = r(Z2t) in `i' >>>> replace Z1t = r(Z1t) in `i' >>>> append using new >>>> restore >>>> } >>>> >>>> I am grateful for any thoughts anyone may have. >>>> >>>> Thank you!! >>>> >>>> Rick Francis >>>> >>>> * >>>> * 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/ >>> * >>> * 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/ >>> >>> * >>> * 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/ >> * >> * 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/ >> >> * >> * 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/ * * 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/

**Follow-Ups**:**RE: st: FORVAL loop incomplete***From:*"Francis, Richard N" <[email protected]>

**References**:**st: FORVAL loop incomplete***From:*"Francis, Richard N" <[email protected]>

**Re: st: FORVAL loop incomplete***From:*Nick Cox <[email protected]>

**RE: st: FORVAL loop incomplete***From:*"Francis, Richard N" <[email protected]>

**Re: st: FORVAL loop incomplete***From:*Sergiy Radyakin <[email protected]>

**RE: st: FORVAL loop incomplete***From:*"Francis, Richard N" <[email protected]>

**Re: st: FORVAL loop incomplete***From:*Sergiy Radyakin <[email protected]>

- Prev by Date:
**Re: st: Calculating confidence intervals for the ratio of stratified standardised mortality rates** - Next by Date:
**RE: st: FORVAL loop incomplete** - Previous by thread:
**Re: st: FORVAL loop incomplete** - Next by thread:
**RE: st: FORVAL loop incomplete** - Index(es):