<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Annual average in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13181#M1859</link>
    <description>Not sure if I understand what do you want to calculate. Would it be just one number - value for Jan09 =(1+13)/2 or you want averages for each following month?</description>
    <pubDate>Fri, 06 Nov 2009 13:11:38 GMT</pubDate>
    <dc:creator>ieva</dc:creator>
    <dc:date>2009-11-06T13:11:38Z</dc:date>
    <item>
      <title>Annual average</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13180#M1858</link>
      <description>I need to calculate annual average, ie, the average of today’s value with the value 12 months back. If I have a variable with monthly observations, how can I do that? Please note that I am working with multiple stocks.&lt;BR /&gt;
&lt;BR /&gt;
An example is given below.&lt;BR /&gt;
&lt;BR /&gt;
Date Var. Avg.&lt;BR /&gt;
Jan-08 1&lt;BR /&gt;
Feb-08 2&lt;BR /&gt;
Mar-08 3&lt;BR /&gt;
Apr-08 4&lt;BR /&gt;
May-08 5&lt;BR /&gt;
Jun-08 6&lt;BR /&gt;
Jul-08 7&lt;BR /&gt;
Aug-08 8&lt;BR /&gt;
Sep-08 9&lt;BR /&gt;
Oct-08 10&lt;BR /&gt;
Nov-08 11&lt;BR /&gt;
Dec-08 12&lt;BR /&gt;
Jan-09 13 (1+13)/2&lt;BR /&gt;
&lt;BR /&gt;
I know that I can do this using lag12 function, but then I am not able to figure out how to reset the first 12 observations for each stock.&lt;BR /&gt;
&lt;BR /&gt;
Any help would be really appreciated. Have been stuck on this for a while</description>
      <pubDate>Fri, 06 Nov 2009 04:29:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13180#M1858</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-11-06T04:29:24Z</dc:date>
    </item>
    <item>
      <title>Re: Annual average</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13181#M1859</link>
      <description>Not sure if I understand what do you want to calculate. Would it be just one number - value for Jan09 =(1+13)/2 or you want averages for each following month?</description>
      <pubDate>Fri, 06 Nov 2009 13:11:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13181#M1859</guid>
      <dc:creator>ieva</dc:creator>
      <dc:date>2009-11-06T13:11:38Z</dc:date>
    </item>
    <item>
      <title>Re: Annual average</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13182#M1860</link>
      <description>Ieva&lt;BR /&gt;
&lt;BR /&gt;
Its for each following month, hope the table below makes it clear.&lt;BR /&gt;
&lt;BR /&gt;
I can lag "Var." by lag12 and find the required average. But then I also need to reset my first 12 values for each firm because once I lag by 12 then ABC values will overlap with XYZ. This is where I am stuck, 'How do I reset the first 12 values for each firm?'.&lt;BR /&gt;
&lt;BR /&gt;
Date	Firm	Var.	Avg.&lt;BR /&gt;
Jan-08	ABC	1	1&lt;BR /&gt;
Feb-08	ABC	2	2&lt;BR /&gt;
Mar-08	ABC	3	3&lt;BR /&gt;
Apr-08	ABC	4	4&lt;BR /&gt;
May-08	ABC	5	5&lt;BR /&gt;
Jun-08	ABC	6	6&lt;BR /&gt;
Jul-08	ABC	7	7&lt;BR /&gt;
Aug-08	ABC	8	8&lt;BR /&gt;
Sep-08	ABC	9	9&lt;BR /&gt;
Oct-08	ABC	10	10&lt;BR /&gt;
Nov-08	ABC	11	11&lt;BR /&gt;
Dec-08	ABC	12	12&lt;BR /&gt;
Jan-09	ABC	13	(1+13)/2&lt;BR /&gt;
Feb-09	ABC	14	(2+14)/2&lt;BR /&gt;
Mar-09	ABC	15	(3+15)/2&lt;BR /&gt;
May-09	ABC	16	(4+16)/2&lt;BR /&gt;
Jun-09	ABC	17	(5+17)/2&lt;BR /&gt;
Jul-09	ABC	18	(6+18)/2&lt;BR /&gt;
Jan-08	XYZ	21	21&lt;BR /&gt;
Feb-08	XYZ	22	22&lt;BR /&gt;
Mar-08	XYZ	23	23&lt;BR /&gt;
Apr-08	XYZ	24	24&lt;BR /&gt;
May-08	XYZ	25	25&lt;BR /&gt;
Jun-08	XYZ	26	26&lt;BR /&gt;
Jul-08	XYZ	27	27&lt;BR /&gt;
Aug-08	XYZ	28	28&lt;BR /&gt;
Sep-08	XYZ	29	29&lt;BR /&gt;
Oct-08	XYZ	30	30&lt;BR /&gt;
Nov-08	XYZ	31	31&lt;BR /&gt;
Dec-08	XYZ	32	32&lt;BR /&gt;
Jan-09	XYZ	33	(21+33)/2&lt;BR /&gt;
Feb-09	XYZ	34	(22+34)/2&lt;BR /&gt;
Mar-09	XYZ	35	(23+35)/2&lt;BR /&gt;
May-09	XYZ	36	(24+36)/2&lt;BR /&gt;
Jun-09	XYZ	37	(25+37)/2&lt;BR /&gt;
Jul-09	XYZ	38	(26+38)/2&lt;BR /&gt;
&lt;BR /&gt;
Message was edited by: ronmama

Message was edited by: ronmama</description>
      <pubDate>Mon, 09 Nov 2009 02:44:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13182#M1860</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-11-09T02:44:45Z</dc:date>
    </item>
    <item>
      <title>Re: Annual average</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13183#M1861</link>
      <description>You can try this, maybe that is what you need:&lt;BR /&gt;
&lt;BR /&gt;
data test;&lt;BR /&gt;
input Date date9. Firm $ Var Avg_necessary $9.;&lt;BR /&gt;
format date date9.;&lt;BR /&gt;
datalines ;&lt;BR /&gt;
1-Jan-08 ABC 1 1&lt;BR /&gt;
1-Feb-08 ABC 2 2&lt;BR /&gt;
1-Mar-08 ABC 3 3&lt;BR /&gt;
1-Apr-08 ABC 4 4&lt;BR /&gt;
1-May-08 ABC 5 5&lt;BR /&gt;
1-Jun-08 ABC 6 6&lt;BR /&gt;
1-Jul-08 ABC 7 7&lt;BR /&gt;
1-Aug-08 ABC 8 8&lt;BR /&gt;
1-Sep-08 ABC 9 9&lt;BR /&gt;
1-Oct-08 ABC 10 10&lt;BR /&gt;
1-Nov-08 ABC 11 11&lt;BR /&gt;
1-Dec-08 ABC 12 12&lt;BR /&gt;
1-Jan-09 ABC 13 (1+13)/2&lt;BR /&gt;
1-Feb-09 ABC 14 (2+14)/2&lt;BR /&gt;
1-Mar-09 ABC 15 (3+15)/2&lt;BR /&gt;
1-May-09 ABC 16 (4+16)/2&lt;BR /&gt;
1-Jun-09 ABC 17 (5+17)/2&lt;BR /&gt;
1-Jul-09 ABC 18 (6+18)/2&lt;BR /&gt;
1-Jan-08 XYZ 21 21&lt;BR /&gt;
1-Feb-08 XYZ 22 22&lt;BR /&gt;
1-Mar-08 XYZ 23 23&lt;BR /&gt;
1-Apr-08 XYZ 24 24&lt;BR /&gt;
1-May-08 XYZ 25 25&lt;BR /&gt;
1-Jun-08 XYZ 26 26&lt;BR /&gt;
1-Jul-08 XYZ 27 27&lt;BR /&gt;
1-Aug-08 XYZ 28 28&lt;BR /&gt;
1-Sep-08 XYZ 29 29&lt;BR /&gt;
1-Oct-08 XYZ 30 30&lt;BR /&gt;
1-Nov-08 XYZ 31 31&lt;BR /&gt;
1-Dec-08 XYZ 32 32&lt;BR /&gt;
1-Jan-09 XYZ 33 (21+33)/2&lt;BR /&gt;
1-Feb-09 XYZ 34 (22+34)/2&lt;BR /&gt;
1-Mar-09 XYZ 35 (23+35)/2&lt;BR /&gt;
1-May-09 XYZ 36 (24+36)/2&lt;BR /&gt;
1-Jun-09 XYZ 37 (25+37)/2&lt;BR /&gt;
1-Jul-09 XYZ 38 (26+38)/2&lt;BR /&gt;
;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=test;&lt;BR /&gt;
by firm date;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data test2;&lt;BR /&gt;
set test;&lt;BR /&gt;
by firm;&lt;BR /&gt;
if first.firm then counter=0;&lt;BR /&gt;
counter+1;&lt;BR /&gt;
lag12=lag12(var);&lt;BR /&gt;
if counter le 12 then avg=var;&lt;BR /&gt;
else avg=(var+lag12)/2;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
You can drop counter and lag12 from final data of course.</description>
      <pubDate>Mon, 09 Nov 2009 07:08:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13183#M1861</guid>
      <dc:creator>ieva</dc:creator>
      <dc:date>2009-11-09T07:08:28Z</dc:date>
    </item>
    <item>
      <title>Re: Annual average</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13184#M1862</link>
      <description>ieva&lt;BR /&gt;
&lt;BR /&gt;
thank you so very much!</description>
      <pubDate>Tue, 10 Nov 2009 08:52:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Annual-average/m-p/13184#M1862</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-11-10T08:52:28Z</dc:date>
    </item>
  </channel>
</rss>

