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]
Re: st: FORVAL loop incomplete
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/