Can I seek your help on SAS PROC MEAN?
Share | Turnover | Date |
1 | 54 | 2000Q1 |
1 | 34 | 2000Q1 |
1 | 64 | 2000Q1 |
1 | 12 | 2000Q1 |
1 | 34 | 2000Q2 |
1 | 22 | 2000Q2 |
1 | 11 | 2000Q2 |
1 | 55 | 2000Q2 |
2 | 31 | 2000Q1 |
2 | 42 | 2000Q1 |
2 | 52 | 2000Q1 |
2 | 53 | 2000Q1 |
2 | 86 | 2000Q2 |
2 | 42 | 2000Q2 |
2 | 32 | 2000Q2 |
2 | 12 | 2000Q2 |
What I need is I want to first find the average for each stock for each period.
Then I want to average the stock's turnover average for each period.
As an example, I first need to know stock's 1 turnover average for 2000 Q1.
= (54+34+64+12)/4
= 41
Then I need to know stock's 2 turnover average for 2000 Q1.
= (31+42+52+53)/4
= 44.5
Then I need to find the simple average of all the stock's turnover for 2000 Q1.
= (41+44.5) / 2
= 42.75
Ultimately, I want to find out the 42.75 for each time period.
Right now the way I'm doing it is the following.
proc means no print data = turnover maxdec = 9;
output out = turnover1;
class date share;
variable turnover;
run;
Then I will get something like this
2000Q1 1 41
2 44.5
Then to find the simple average of all the stock's average turnover for 2000Q1, I will manually find the average by adding 41 to 44.5 and then divide it by 2.
However, this is incredibly time consuming because I have around 1000 stocks for each time period. If I sum it up manually and then divide it by the number of stocks.
So, may I ask if you have any simpler methods to help me obtain my final answer?
Thank you so much
davil2000 发表于 2012-9-3 13:52
data data1;
input Share #2 Turnover #3 @2 Date yyq6. #4;
format Date yyq6.;