Bookmark and Share

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   Nick Cox <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: FORVAL loop incomplete
Date   Sat, 9 Nov 2013 17:57:21 +0000

An earlier thread established that -sroot- (SJ) does not support -if-
correctly. That's the entire point of the work-around being used here.
Nick
[email protected]


On 9 November 2013 17:52, William Buchanan <[email protected]> wrote:
> Hi Rick,
>
> I've adjusted some of your code below based on the information that you've provided to the listserv:
>
> destring gvkey, replace
>
> encode gvkey, gen(id)
>
> gen date = yq(year, fqtr)
>
> tsset id date, quarterly
>
> g Z14 = .
> g Z24 = .
> g Z34 = .
> g Z4t = .
> g Z3t = .
> g Z2t = .
> g Z1t = .
>
> su id, meanonly
>
> forval i = 1/3 {
>    sroot fcf if id==`i'
>         replace Z14 = r(Z14) if id== `i'
>         replace Z24 = r(Z24) if id== `i'
>         replace Z34 = r(Z34) if id== `i'
>         replace Z4t = r(Z4t) if id==`i'
>         replace Z3t = r(Z3t) if id==`i'
>         replace Z2t = r(Z2t) if id== `i'
>         replace Z1t = r(Z1t) if id== `i'
> }
>
> You could also take Sergiy's suggestion and store everything in matrices, and if you wanted you could easily modify the user-written program around line 306 to store all of the values in a matrix that you could return in the same way as the scalars that you are referencing here.  If you wanted to create a new dataset based on the results, you could possibly modify the program to make it byable and use -statsby-, or you could check out -post- and -postfile- commands to store the results to another file.
>
> HTH,
> Billy
> On Nov 9, 2013, at 10: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/

*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index