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: RE: how to store the statistics calculated in a loop as a table?


From   Nick Cox <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   RE: st: RE: how to store the statistics calculated in a loop as a table?
Date   Wed, 7 Dec 2011 19:17:03 +0000

We can only respond to what you explain. 

In principle -collapse- can be extended to much more complicated problems. You need to try it, not to speculate. Did you try my code? 

Once you have a dataset of summary statistics, the problem of tabulation largely disappears. Again, if you start looking at the documentation carefully and apply the commands, this will become clearer. 

Nick 
[email protected] 

qing ye

Hi, Nick

Thanks for the information.

Actually, I will want to calculate several statsitics using that loop.
in addition, I will want to based on the group+year, calculate some
statistics for the group-year over the next few periods.  for example,
I have a group in 1990, then I want to calculate some statistcs for
stocks in the group over the next 12 months, so the code I provided
was my first attempt to do start with something simple.

I guess the collapse will not work if I want to include all the
statistics calculated for each group at each period  in a panel-format
table?

So how do I exactly can store the statistics I calculated in a loop
into one cell of a table?  I used to do this kind of analysis in VB,
which is strictforward, after each loop, I store the value into one
cell of an arrany, and I have no idea how do I do that in stata, not
even a clue on what kind of commends I should use.

Best
Qing

On 8 December 2011 02:39, Nick Cox <[email protected]> wrote:
> -collapse- in particular should mean that you do not need to loop at all.
>
> You can calculate all the ratios of sums by a single -generate-.
>
> collapse (sum) s_EI = EI_t (sum) s_BE = BE_t_1 if inrange(trade_date_yearformat, 1990, 2010), by(FF_group_rank_0 trade_date_yearformat)
>
> gen mean_EI_BE = s_EI / s_BE
>
> Nick
> [email protected]
>
> qing ye
>
> hi, I have checked collapse and tabstat, still no ideas about how to
> use it combined with a loop?
>
> In the loop, everytime, I calculated one mean_EI_BE, how do I write
> this one result into one cell of a table where the columns and rows of
> the table reprsents different steps in a looping?
>
> On 8 December 2011 02:08, qing ye <[email protected]> wrote:
>
>> Thanks for the quick reply.
>>
>> I will  check the help file for collapse and tabstat
>>
>> the group takes the value of 1-6, and the varible FF_group_rank_0
>> takes values of 1-6 stating six groups, so I want to loop for each
>> group, I guess I need to use forvalues rather than foreach?
>
> On 8 December 2011 02:00, Nick Cox <[email protected]> wrote:
>
>>> I'd look at -collapse- and/or -tabstat-.
>>>
>>> In any case, your loop
>>>
>>>      foreach group of varlist FF_group_rank_0 {
>>>
>>>        }
>>>
>>> will do nothing as `group' is never referred to inside the loop. That probably doesn't matter, but it shows some confusion about what -foreach- does.
>
> qing ye
>
>>> Do any of you know how to report the results calculated after the loop
>>> as tables??
>>>
>>> forvalues i=1990 (1)2010 {
>>>      foreach group of varlist FF_group_rank_0 {
>>>              forvalues n=1(1)6{
>>>
>>>
>>>                              quietly sum  EI_t if
>>> trade_date_yearformat==`i' &FF_group_rank_0==`n'
>>>                              local s_EI=r(sum)
>>>                              quietly sum  BE_t_1 if
>>> trade_date_yearformat==`i' &FF_group_rank_0==`n'
>>>                              local s_BE=r(sum)
>>>                              local mean_EI_BE=`s_EI'/`s_BE'
>>>
>>>
>>>              }
>>>              }
>>>              }
>>>
>>> I wanted to have the mean_EI_BE I calculated in the loops reported as a table
>>>
>>> something like the following:
>>>
>>> year      group1 group2 group3 group4 group5 group6
>>>
>>> 1990       x           x        x
>>> 1991       x           x        x
>>> 1992       x           x        x
>>> 1993       x           x        x
>>> ....
>>>
>>>
>>>
>>> How do I do this? Do I need to use matrix commends to save the
>>> mean_EI_BE I calculated each time or do I need to generate some
>>> variables before the loop and store the mean_EI_BE in those variables?
>
> *
> *   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/

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


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