<?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: How to calculate rolling 3 months average to replace missing data? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861077#M340140</link>
    <description>&lt;P&gt;Depending on your real data &lt;A href="https://communities.sas.com/t5/SAS-Procedures/PROC-EXPAND-moving-average-from-previous-7-calendar-days/td-p/716546" target="_self"&gt;this discussion&lt;/A&gt; might provide all the answers you need.&lt;/P&gt;</description>
    <pubDate>Mon, 27 Feb 2023 12:36:32 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2023-02-27T12:36:32Z</dc:date>
    <item>
      <title>How to calculate rolling 3 months average to replace missing data?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861046#M340128</link>
      <description>&lt;P&gt;I have the following data, where some of the quantities are missing. I want to replace them by a rolling 3 month average of previous 3 months. I've tried to explain what I'm trying to achieve here-&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Month&lt;/TD&gt;&lt;TD&gt;Qty&lt;/TD&gt;&lt;TD&gt;Rolling average&lt;/TD&gt;&lt;TD&gt;Rolling average value&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Jan&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;-&lt;/TD&gt;&lt;TD&gt;-&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Feb&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Mar&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;average(3,2)&lt;/TD&gt;&lt;TD&gt;2.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Apr&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;average(2,3,2)&lt;/TD&gt;&lt;TD&gt;2.333333333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;average(6,2,3)&lt;/TD&gt;&lt;TD&gt;3.666666667&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;AVERAGE(4,6,2)&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Jul&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;average(5,4,6)&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Aug&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;average(5,5,4)&lt;/TD&gt;&lt;TD&gt;4.666666667&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Sep&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;average(4.666667,5,5)&lt;/TD&gt;&lt;TD&gt;4.888888889&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Oct&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;average(4.8888889,4.666667,5)&lt;/TD&gt;&lt;TD&gt;4.851851852&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Nov&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;average(4.8518519, 4.888889, 4.666667)&lt;/TD&gt;&lt;TD&gt;4.802469136&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Dec&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;average(4.8024691, 4.8518519, 4.8888889)&lt;/TD&gt;&lt;TD&gt;4.847736626&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Jan&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Feb&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Mar&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Apr&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;May&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Jun&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Jul&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Aug&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Sep&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Oct&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Nov&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Dec&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone please help on how to do this in SAS?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Feb 2023 10:55:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861046#M340128</guid>
      <dc:creator>Ankita_</dc:creator>
      <dc:date>2023-02-27T10:55:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate rolling 3 months average to replace missing data?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861052#M340131</link>
      <description>&lt;P&gt;Try this and replace as you like.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Month $ Qty;
datalines; 
1 Jan 2 
1 Feb 3 
1 Mar 2 
1 Apr 6 
1 May 4 
1 Jun 5 
1 Jul . 
1 Aug . 
1 Sep . 
1 Oct . 
1 Nov . 
1 Dec . 
2 Jan 5 
2 Feb 1 
2 Mar 4 
2 Apr 3 
2 May 4 
2 Jun 6 
2 Jul . 
2 Aug . 
2 Sep . 
2 Oct . 
2 Nov . 
2 Dec . 
;

data want;
    array lag[0:2] _temporary_;        
    call missing(of lag[*]);        

    do _N_ = 1 by 1 until (last.id);      
        set have;
        by id;

        output;

        lag[mod(_N_, 3)] = coalesce(Qty, avg);            
        avg = mean(of lag[*]);
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Result:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;ID  Month  Qty  avg
1   Jan    2    .
1   Feb    3    2
1   Mar    2    2.5
1   Apr    6    2.3333333333
1   May    4    3.6666666667
1   Jun    5    4
1   Jul    .    5
1   Aug    .    4.6666666667
1   Sep    .    4.8888888889
1   Oct    .    4.8518518519
1   Nov    .    4.8024691358
1   Dec    .    4.8477366255
2   Jan    5    .
2   Feb    1    5
2   Mar    4    3
2   Apr    3    3.3333333333
2   May    4    2.6666666667
2   Jun    6    3.6666666667
2   Jul    .    4.3333333333
2   Aug    .    4.7777777778
2   Sep    .    5.037037037
2   Oct    .    4.7160493827
2   Nov    .    4.8436213992
2   Dec    .    4.865569273&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Feb 2023 11:05:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861052#M340131</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2023-02-27T11:05:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate rolling 3 months average to replace missing data?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861077#M340140</link>
      <description>&lt;P&gt;Depending on your real data &lt;A href="https://communities.sas.com/t5/SAS-Procedures/PROC-EXPAND-moving-average-from-previous-7-calendar-days/td-p/716546" target="_self"&gt;this discussion&lt;/A&gt; might provide all the answers you need.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Feb 2023 12:36:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-rolling-3-months-average-to-replace-missing/m-p/861077#M340140</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2023-02-27T12:36:32Z</dc:date>
    </item>
  </channel>
</rss>

