<?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: calculate inverse weighted cumulative average across preceding weeks in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440084#M13578</link>
    <description>&lt;P&gt;I would expect you can use arrays to do this.&amp;nbsp; I'm just being lazy on a Sunday ... here's the structure but without a key formula that needs to be filled in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;array wk {37};&lt;/P&gt;
&lt;P&gt;array avg {37};&lt;/P&gt;
&lt;P&gt;do j=2 to 37;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;avg_numer = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;do k=1 to j-1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * increment avg_numer;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;avg{j} = avg_numer / (j-1);&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 25 Feb 2018 22:34:28 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2018-02-25T22:34:28Z</dc:date>
    <item>
      <title>calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439589#M13544</link>
      <description>&lt;P&gt;I would like to calculate weighted averages across 37 weeks, where each average includes all previous weeks, inversely weighted by their distance from the current week.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My data is in wide format where each observation is one person, with&amp;nbsp;variables&amp;nbsp;wk1 - wk37 as weekly values.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what I would like to accomplish:&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;avg1 = .;&lt;BR /&gt;avg2 = wk1;&lt;BR /&gt;avg3 = (( wk2*(2/3) + wk1*(1/3)) / 2);&lt;BR /&gt;avg4 = (( wk3*(3/4) + wk2*(2/4) + wk1*(1/4)) / 3) ;&lt;BR /&gt;avg5 = (( wk4*(4/5) + wk3*(3/5) + wk2*(2/5) + wk1*(1/5)) / 4);&lt;BR /&gt;avg6 = (( wk5*(5/6) + wk4*(4/6) + wk3*(3/6) + wk2*(2/6) + wk1*(1/6)) / 5);&lt;BR /&gt;avg7 = (( wk6*(6/7) + wk5*(5/7) + wk4*(4/7) + wk3*(3/7) + wk2*(2/7)) + wk1(1/7)) / 6);&lt;BR /&gt;avg8 = (( wk7*(7/8) + wk6*(6/8) + wk5*(5/8) + wk4*(4/8) + wk3*(3/8) + wk2*(2/8) + wk1*(1/8) / 7;&lt;/P&gt;&lt;P&gt;etc. ....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2018 05:01:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439589#M13544</guid>
      <dc:creator>psh23</dc:creator>
      <dc:date>2018-02-23T05:01:10Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439679#M13549</link>
      <description>&lt;P&gt;Do you have a SAS/ETS license?&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2018 13:04:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439679#M13549</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2018-02-23T13:04:47Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439770#M13555</link>
      <description>&lt;P&gt;Yes&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2018 17:42:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439770#M13555</guid>
      <dc:creator>psh23</dc:creator>
      <dc:date>2018-02-23T17:42:23Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439931#M13567</link>
      <description>&lt;P&gt;Sorry. I meant SAS/IML. Do you have a SAS/IML license?&lt;/P&gt;</description>
      <pubDate>Sat, 24 Feb 2018 09:47:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439931#M13567</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2018-02-24T09:47:53Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439942#M13568</link>
      <description>&lt;P&gt;If you do..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think the easiest way to solve this problem is to think of it in terms of vectors and matrices and use the IML language.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A way to go about is is like this, which is easily extendable to 37 weeks..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Feel free to ask again if you have questions &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input personID wk1-wk5;
datalines;
1 23 61 31 86 32
2 24 69 34 83 31
3 21 65 33 85 35
4 28 63 33 81 34
;

proc iml;
use have;
   read all var ("wk1":"wk5") into W;
   read all var {personID} into personID;
close have;

Avg=j(nrow(W),ncol(W),.);
Avg[ ,2] = W[ ,1];

do i=1 to nrow(W);
   do j=3 to 5;
      v=do(1/j, (j-1)/j, 1/j);
      Avg[i,j]= sum(v#W[i,1:j-1])/(j-1);
   end;
end;

Avg=personID||Avg;
varNames= "personID"||("avg1":"avg5");

create want from Avg[c=varNames];
   append from Avg;
close want;
quit;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 24 Feb 2018 14:41:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/439942#M13568</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2018-02-24T14:41:34Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440060#M13575</link>
      <description>&lt;P&gt;This worked, thank you!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 25 Feb 2018 19:16:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440060#M13575</guid>
      <dc:creator>psh23</dc:creator>
      <dc:date>2018-02-25T19:16:38Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440076#M13577</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/462"&gt;@PGStats&lt;/a&gt;,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt;&amp;nbsp;can I ask for a minute of your time?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Am I overthinking this problem? An IML approach is the only solution I could think of&amp;nbsp;and it worked, but I feel like there is a simpler way?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you in advance.&lt;/P&gt;</description>
      <pubDate>Sun, 25 Feb 2018 21:28:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440076#M13577</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2018-02-25T21:28:28Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440084#M13578</link>
      <description>&lt;P&gt;I would expect you can use arrays to do this.&amp;nbsp; I'm just being lazy on a Sunday ... here's the structure but without a key formula that needs to be filled in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;array wk {37};&lt;/P&gt;
&lt;P&gt;array avg {37};&lt;/P&gt;
&lt;P&gt;do j=2 to 37;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;avg_numer = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;do k=1 to j-1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * increment avg_numer;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;avg{j} = avg_numer / (j-1);&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 25 Feb 2018 22:34:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440084#M13578</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-02-25T22:34:28Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440116#M13579</link>
      <description>&lt;P&gt;Arrays?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
array wk{37};
array avg{37};
set have;
do i = 1 to dim(wk);
    do j = 1 to i-1;
        avg{i} = sum(avg{i}, wk{j} * j / i);
        end;
    if i &amp;gt; 1 then avg{i} = avg{i} / (i-1);
    end;
drop i j;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 26 Feb 2018 06:15:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/440116#M13579</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-02-26T06:15:45Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/442963#M13674</link>
      <description>&lt;P&gt;This works for my previous method - however now I want to modify my formula so that:&lt;/P&gt;&lt;P&gt;avg(wk4) = wk3*3 + wk2*2 + wk1*1 / 3!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I attempted to modify the code but it is giving me this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;wk1&lt;/TD&gt;&lt;TD&gt;15.3763&lt;/TD&gt;&lt;TD&gt;avg1&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk2&lt;/TD&gt;&lt;TD&gt;12.1931&lt;/TD&gt;&lt;TD&gt;avg2&lt;/TD&gt;&lt;TD&gt;15.3763&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk3&lt;/TD&gt;&lt;TD&gt;10.2969&lt;/TD&gt;&lt;TD&gt;avg3&lt;/TD&gt;&lt;TD&gt;19.8813&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk4&lt;/TD&gt;&lt;TD&gt;9.77625&lt;/TD&gt;&lt;TD&gt;avg4&lt;/TD&gt;&lt;TD&gt;11.7755&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk5&lt;/TD&gt;&lt;TD&gt;8.708&lt;/TD&gt;&lt;TD&gt;avg5&lt;/TD&gt;&lt;TD&gt;4.57326&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk6&lt;/TD&gt;&lt;TD&gt;15.4319&lt;/TD&gt;&lt;TD&gt;avg6&lt;/TD&gt;&lt;TD&gt;1.27748&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk7&lt;/TD&gt;&lt;TD&gt;38.5981&lt;/TD&gt;&lt;TD&gt;avg7&lt;/TD&gt;&lt;TD&gt;0.34151&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk8&lt;/TD&gt;&lt;TD&gt;10.0525&lt;/TD&gt;&lt;TD&gt;avg8&lt;/TD&gt;&lt;TD&gt;0.1024&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk9&lt;/TD&gt;&lt;TD&gt;8.78688&lt;/TD&gt;&lt;TD&gt;avg9&lt;/TD&gt;&lt;TD&gt;0.01479&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk10&lt;/TD&gt;&lt;TD&gt;10.6669&lt;/TD&gt;&lt;TD&gt;avg10&lt;/TD&gt;&lt;TD&gt;0.00186&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk11&lt;/TD&gt;&lt;TD&gt;10.2844&lt;/TD&gt;&lt;TD&gt;avg11&lt;/TD&gt;&lt;TD&gt;0.00022&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk12&lt;/TD&gt;&lt;TD&gt;15.4988&lt;/TD&gt;&lt;TD&gt;avg12&lt;/TD&gt;&lt;TD&gt;2.2E-05&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk13&lt;/TD&gt;&lt;TD&gt;10.8888&lt;/TD&gt;&lt;TD&gt;avg13&lt;/TD&gt;&lt;TD&gt;2.3E-06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk14&lt;/TD&gt;&lt;TD&gt;7.9475&lt;/TD&gt;&lt;TD&gt;avg14&lt;/TD&gt;&lt;TD&gt;2E-07&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk15&lt;/TD&gt;&lt;TD&gt;9.81188&lt;/TD&gt;&lt;TD&gt;avg15&lt;/TD&gt;&lt;TD&gt;1.53E-08&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk16&lt;/TD&gt;&lt;TD&gt;11.3281&lt;/TD&gt;&lt;TD&gt;avg16&lt;/TD&gt;&lt;TD&gt;1.13E-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk17&lt;/TD&gt;&lt;TD&gt;16.7944&lt;/TD&gt;&lt;TD&gt;avg17&lt;/TD&gt;&lt;TD&gt;7.95E-11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk18&lt;/TD&gt;&lt;TD&gt;21.3356&lt;/TD&gt;&lt;TD&gt;avg18&lt;/TD&gt;&lt;TD&gt;5.48E-12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk19&lt;/TD&gt;&lt;TD&gt;11.0613&lt;/TD&gt;&lt;TD&gt;avg19&lt;/TD&gt;&lt;TD&gt;3.64E-13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk20&lt;/TD&gt;&lt;TD&gt;13.3138&lt;/TD&gt;&lt;TD&gt;avg20&lt;/TD&gt;&lt;TD&gt;2.09E-14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk21&lt;/TD&gt;&lt;TD&gt;12.1488&lt;/TD&gt;&lt;TD&gt;avg21&lt;/TD&gt;&lt;TD&gt;1.15E-15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk22&lt;/TD&gt;&lt;TD&gt;11.0613&lt;/TD&gt;&lt;TD&gt;avg22&lt;/TD&gt;&lt;TD&gt;6.00E-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk23&lt;/TD&gt;&lt;TD&gt;24.0344&lt;/TD&gt;&lt;TD&gt;avg23&lt;/TD&gt;&lt;TD&gt;2.94E-18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk24&lt;/TD&gt;&lt;TD&gt;29.5988&lt;/TD&gt;&lt;TD&gt;avg24&lt;/TD&gt;&lt;TD&gt;1.49E-19&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk25&lt;/TD&gt;&lt;TD&gt;21.4113&lt;/TD&gt;&lt;TD&gt;avg25&lt;/TD&gt;&lt;TD&gt;7.37E-21&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk26&lt;/TD&gt;&lt;TD&gt;14.6531&lt;/TD&gt;&lt;TD&gt;avg26&lt;/TD&gt;&lt;TD&gt;3.29E-22&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk27&lt;/TD&gt;&lt;TD&gt;14.7&lt;/TD&gt;&lt;TD&gt;avg27&lt;/TD&gt;&lt;TD&gt;1.36E-23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk28&lt;/TD&gt;&lt;TD&gt;18.7425&lt;/TD&gt;&lt;TD&gt;avg28&lt;/TD&gt;&lt;TD&gt;5.40E-25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk29&lt;/TD&gt;&lt;TD&gt;15.8988&lt;/TD&gt;&lt;TD&gt;avg29&lt;/TD&gt;&lt;TD&gt;2.10E-26&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk30&lt;/TD&gt;&lt;TD&gt;13.8875&lt;/TD&gt;&lt;TD&gt;avg30&lt;/TD&gt;&lt;TD&gt;7.77E-28&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk31&lt;/TD&gt;&lt;TD&gt;19.5225&lt;/TD&gt;&lt;TD&gt;avg31&lt;/TD&gt;&lt;TD&gt;2.75E-29&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk32&lt;/TD&gt;&lt;TD&gt;17.2169&lt;/TD&gt;&lt;TD&gt;avg32&lt;/TD&gt;&lt;TD&gt;9.60E-31&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk33&lt;/TD&gt;&lt;TD&gt;12.4269&lt;/TD&gt;&lt;TD&gt;avg33&lt;/TD&gt;&lt;TD&gt;3.21E-32&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk34&lt;/TD&gt;&lt;TD&gt;16.275&lt;/TD&gt;&lt;TD&gt;avg34&lt;/TD&gt;&lt;TD&gt;1.02E-33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk35&lt;/TD&gt;&lt;TD&gt;22.9125&lt;/TD&gt;&lt;TD&gt;avg35&lt;/TD&gt;&lt;TD&gt;3.19E-35&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk36&lt;/TD&gt;&lt;TD&gt;20.1725&lt;/TD&gt;&lt;TD&gt;avg36&lt;/TD&gt;&lt;TD&gt;9.88E-37&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;wk37&lt;/TD&gt;&lt;TD&gt;12.145&lt;/TD&gt;&lt;TD&gt;avg37&lt;/TD&gt;&lt;TD&gt;2.94E-38&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;array wk{37};&lt;BR /&gt;array avg{37};&lt;BR /&gt;set wide;&lt;BR /&gt;do i = 1 to dim(wk);&lt;BR /&gt;do j = 1 to i-1;&lt;BR /&gt;avg{i} = sum(avg{i}, wk{j} * j);&lt;BR /&gt;end;&lt;BR /&gt;if i &amp;gt; 1 then avg{i} = avg{i} / fact(i-1);&lt;BR /&gt;end;&lt;BR /&gt;drop i j;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Mar 2018 16:49:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/442963#M13674</guid>
      <dc:creator>psh23</dc:creator>
      <dc:date>2018-03-06T16:49:30Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/443014#M13676</link>
      <description>&lt;P&gt;Looks about right to me. &lt;EM&gt;Fact(n)&lt;/EM&gt; increases very quickly with &lt;EM&gt;n&lt;/EM&gt;. I would guess that what you really want is to divise the weighted sum by the sum of the weights. Something like&amp;nbsp;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
array wk{37};
array avg{37};
set have;
do i = 1 to dim(wk);
    w = 0;
    do j = 1 to i-1;
        avg{i} = sum(avg{i}, wk{j} * j);
        w = w + j;
        end;
    if i &amp;gt; 1 then avg{i} = avg{i} / w;
    end;
drop i j w;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 06 Mar 2018 19:50:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/443014#M13676</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-03-06T19:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: calculate inverse weighted cumulative average across preceding weeks</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/443022#M13677</link>
      <description>&lt;P&gt;Yes thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 06 Mar 2018 20:10:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/calculate-inverse-weighted-cumulative-average-across-preceding/m-p/443022#M13677</guid>
      <dc:creator>psh23</dc:creator>
      <dc:date>2018-03-06T20:10:06Z</dc:date>
    </item>
  </channel>
</rss>

