<?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 dynamically replace values every month in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55403#M15418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thanks for all your answers. Certainly they help to me some extent. Theis is a small change which I have incorporated in the below code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data act;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;actuals a 1 2 3 4 5 0 0 0 0 0 0 0&lt;BR /&gt;actuals b 6 7 8 9 4 0 0 0 0 0 0 0&lt;BR /&gt;actuals c 5 4 3 2 1 0 0 0 0 0 0 0&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data fct;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;fcast a 9 4 0 8 0 1 2 3 4 5 6 7&lt;BR /&gt;fcast b 0 1 2 0 3 7 8 9 1 2 3 4&lt;BR /&gt;fcast c 6 0 0 1 0 5 6 7 3 2 1 3&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;For example present working month is May. So i will get Actual data up to May month. The forecast data starts&lt;BR /&gt;present month+1(May+1=June).So the forcast data is available from June onwords to till year end. My question is to replace the forecast data&lt;BR /&gt;with actual data up to May month if the data is zero or any numeric values.&lt;/P&gt;&lt;P&gt;Outpu dataset should look like:&lt;/P&gt;&lt;P&gt;title&amp;nbsp;&amp;nbsp; prod jan feb mar apr may jun jul aug sep oct nov dec&lt;BR /&gt;actuals&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 4 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 3 &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Feb 2012 09:47:14 GMT</pubDate>
    <dc:creator>Newbee_MVK</dc:creator>
    <dc:date>2012-02-16T09:47:14Z</dc:date>
    <item>
      <title>dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55403#M15418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thanks for all your answers. Certainly they help to me some extent. Theis is a small change which I have incorporated in the below code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data act;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;actuals a 1 2 3 4 5 0 0 0 0 0 0 0&lt;BR /&gt;actuals b 6 7 8 9 4 0 0 0 0 0 0 0&lt;BR /&gt;actuals c 5 4 3 2 1 0 0 0 0 0 0 0&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data fct;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;fcast a 9 4 0 8 0 1 2 3 4 5 6 7&lt;BR /&gt;fcast b 0 1 2 0 3 7 8 9 1 2 3 4&lt;BR /&gt;fcast c 6 0 0 1 0 5 6 7 3 2 1 3&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;For example present working month is May. So i will get Actual data up to May month. The forecast data starts&lt;BR /&gt;present month+1(May+1=June).So the forcast data is available from June onwords to till year end. My question is to replace the forecast data&lt;BR /&gt;with actual data up to May month if the data is zero or any numeric values.&lt;/P&gt;&lt;P&gt;Outpu dataset should look like:&lt;/P&gt;&lt;P&gt;title&amp;nbsp;&amp;nbsp; prod jan feb mar apr may jun jul aug sep oct nov dec&lt;BR /&gt;actuals&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 4 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 3 &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2012 09:47:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55403#M15418</guid>
      <dc:creator>Newbee_MVK</dc:creator>
      <dc:date>2012-02-16T09:47:14Z</dc:date>
    </item>
    <item>
      <title>dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55404#M15419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following code works for your as-is data, based on an assumption that records are pulled in turn from both incoming tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data act;&lt;/P&gt;&lt;P&gt;input title $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;actuals 1 2 3 4 5 0 0 0 0 0 0 0&lt;/P&gt;&lt;P&gt;actuals 1 2 3 4 5 6 0 0 0 0 0 0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data fct;&lt;/P&gt;&lt;P&gt;input title $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;fcast 0 0 0 0 0 1 2 3 4 5 6 7&lt;/P&gt;&lt;P&gt;fcast 0 0 0 0 0 0 1 2 3 4 5 6&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data actfct (drop=l: i);&lt;/P&gt;&lt;P&gt;set act;&lt;/P&gt;&lt;P&gt;array v(*) jan--dec;&lt;/P&gt;&lt;P&gt;array lg(*) l1-l12;&lt;/P&gt;&lt;P&gt;do i=1 to dim(v);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lg(i)=v(i);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;set fct;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i=1 to dim(v);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v(i)=ifn(v(i)=0,lg(i),v(i));&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=actfct;&lt;/P&gt;&lt;P&gt;by title;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Regards,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2012 18:41:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55404#M15419</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-02-16T18:41:46Z</dc:date>
    </item>
    <item>
      <title>dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55405#M15420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need to post some more data to clear your question more.&lt;/P&gt;&lt;P&gt;For&amp;nbsp; the data you posted and what I understand.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data act;
input title $ jan feb mar apr may jun jul aug sep oct nov dec;
cards;
actuals 1 2 3 4 5 0 0 0 0 0 0 0
actuals 1 2 3 4 5 6 0 0 0 0 0 0
;
run;

data fct;
input title $ jan feb mar apr may jun jul aug sep oct nov dec;
cards;
fcast 0 0 0 0 0 1 2 3 4 5 6 7
fcast 0 0 0 0 0 0 1 2 3 4 5 6
;
run;

data actfct(drop=_: i j);
set act(in=a) fct(in=b);
retain _jan _feb _mar _apr _may _jun _jul _aug _sep _oct _nov _dec;
array _a{*} jan feb mar apr may jun jul aug sep oct nov dec;
array _b{*} _jan _feb _mar _apr _may _jun _jul _aug _sep _oct _nov _dec;
if a then do;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to dim(_a);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _b{i}=_a{i};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
if b then do;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to dim(_a);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _a{j}=ifn(_a{j}=0,_b{j},_a{j});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
run;



&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2012 06:25:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55405#M15420</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-02-17T06:25:41Z</dc:date>
    </item>
    <item>
      <title>dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55406#M15421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for all your answers. Certainly they help to me some extent. Theis is a small change which I have incorporated in the below code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data act;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;actuals a 1 2 3 4 5 0 0 0 0 0 0 0&lt;BR /&gt;actuals b 6 7 8 9 4 0 0 0 0 0 0 0&lt;BR /&gt;actuals c 5 4 3 2 1 0 0 0 0 0 0 0&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data fct;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;fcast a 9 4 0 8 0 1 2 3 4 5 6 7&lt;BR /&gt;fcast b 0 1 2 0 3 7 8 9 1 2 3 4&lt;BR /&gt;fcast c 6 0 0 1 0 5 6 7 3 2 1 3&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;For example present working month is May. So i will get Actual data up to May month. The forecast data starts&lt;BR /&gt;present month+1(May+1=June).So the forcast data is available from June onwords to till year end. My question is to replace the forecast data&lt;BR /&gt;with actual data up to May month if the data is zero or any numeric values.&lt;/P&gt;&lt;P&gt;Outpu dataset should look like:&lt;/P&gt;&lt;P&gt;title&amp;nbsp;&amp;nbsp; prod jan feb mar apr may jun jul aug sep oct nov dec&lt;BR /&gt;actuals&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 4 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 3 &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2012 10:16:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55406#M15421</guid>
      <dc:creator>Newbee_MVK</dc:creator>
      <dc:date>2012-02-17T10:16:13Z</dc:date>
    </item>
    <item>
      <title>dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55407#M15422</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for all your answers. Certainly they help to me some extent. Theis is a small change which I have incorporated in the below data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data act;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;actuals a 1 2 3 4 5 0 0 0 0 0 0 0&lt;BR /&gt;actuals b 6 7 8 9 4 0 0 0 0 0 0 0&lt;BR /&gt;actuals c 5 4 3 2 1 0 0 0 0 0 0 0&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data fct;&lt;BR /&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;BR /&gt;cards;&lt;BR /&gt;fcast a 9 4 0 8 0 1 2 3 4 5 6 7&lt;BR /&gt;fcast b 0 1 2 0 3 7 8 9 1 2 3 4&lt;BR /&gt;fcast c 6 0 0 1 0 5 6 7 3 2 1 3&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;For example present working month is May. So i will get Actual data up to May month. The forecast data starts&lt;BR /&gt;present month+1(May+1=June).So the forcast data is available from June onwords to till year end. My question is to replace the forecast data&lt;BR /&gt;with actual data up to May month if the data is zero or any numeric values.&lt;/P&gt;&lt;P&gt;Outpu dataset should look like:&lt;/P&gt;&lt;P&gt;title&amp;nbsp;&amp;nbsp; prod jan feb mar apr may jun jul aug sep oct nov dec&lt;BR /&gt;actuals&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;actuals&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 4 &lt;BR /&gt;fcast&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 3 &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2012 10:16:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55407#M15422</guid>
      <dc:creator>Newbee_MVK</dc:creator>
      <dc:date>2012-02-17T10:16:54Z</dc:date>
    </item>
    <item>
      <title>dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55408#M15423</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The original code has been tweaked a bit to accommodate your new situation:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*option 1: automatically detect '0' as being no data for act*/&lt;/P&gt;&lt;P&gt;data actfct (drop=l: i);&lt;/P&gt;&lt;P&gt;set act;&lt;/P&gt;&lt;P&gt;array v(*) jan--dec;&lt;/P&gt;&lt;P&gt;array lg(*) l1-l12;&lt;/P&gt;&lt;P&gt;do i=1 to dim(v);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lg(i)=v(i);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;set fct;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i=1 to dim(v);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v(i)=ifn(lg(i)=0,v(i),lg(i));&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*option 2: arbituary setting the current month for update, in this case: April*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let i=4;&lt;/P&gt;&lt;P&gt;data actfct (drop=l: i);&lt;/P&gt;&lt;P&gt;set act;&lt;/P&gt;&lt;P&gt;array v(*) jan--dec;&lt;/P&gt;&lt;P&gt;array lg(*) l1-l12;&lt;/P&gt;&lt;P&gt;do i=1 to dim(v);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lg(i)=v(i);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;set fct;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do i=1 to dim(v);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v(i)=ifn(i&amp;lt;=&amp;amp;i,lg(i),v(i));&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please note: both tables have to be in the relationship of 1:1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2012 12:36:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55408#M15423</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-02-17T12:36:54Z</dc:date>
    </item>
    <item>
      <title>Re: dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55409#M15424</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think Ksharp's slick code needs some tweak before it can work flawlessly again. Ksharp's code only retains the last record of act instead of one by one, and since in your original post, two records are largely the same in act table, which makes the outcome difficult to analyze. It really took me a while to figure it out. Here, an index variable 'n' has been introduced to each of your incoming tables, Ksharp's code then works like charm:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data act;&lt;/P&gt;&lt;P&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;/P&gt;&lt;P&gt;n+1;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;actuals a 1 2 3 4 5 0 0 0 0 0 0 0&lt;/P&gt;&lt;P&gt;actuals b 6 7 8 9 4 0 0 0 0 0 0 0&lt;/P&gt;&lt;P&gt;actuals c 5 4 3 2 1 0 0 0 0 0 0 0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data fct;&lt;/P&gt;&lt;P&gt;input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;&lt;/P&gt;&lt;P&gt;n+1;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;fcast a 9 4 0 8 0 1 2 3 4 5 6 7&lt;/P&gt;&lt;P&gt;fcast b 0 1 2 0 3 7 8 9 1 2 3 4&lt;/P&gt;&lt;P&gt;fcast c 6 0 0 1 0 5 6 7 3 2 1 3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data actfct(drop=n i j);&lt;/P&gt;&lt;P&gt;set act(in=a) fct(in=b);&lt;/P&gt;&lt;P&gt;by n;&lt;/P&gt;&lt;P&gt;/*retain _jan _feb _mar _apr _may _jun _jul _aug _sep _oct _nov _dec;*/&lt;/P&gt;&lt;P&gt;array _a{*} jan feb mar apr may jun jul aug sep oct nov dec;&lt;/P&gt;&lt;P&gt;array _b{12} _temporary_;&lt;/P&gt;&lt;P&gt;if a then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to dim(_a);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _b{i}=_a{i};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;if b then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to dim(_a);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _a{j}=ifn(_b{j}=0,_a{j},_b{j});&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;BR /&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2012 18:05:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55409#M15424</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-02-17T18:05:01Z</dc:date>
    </item>
    <item>
      <title>Re: dynamically replace values every month</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55410#M15425</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It looks like you need update statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data act;
input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;
n+1;
cards;
actuals a 1 2 3 4 5 0 0 0 0 0 0 0
actuals b 6 7 8 9 4 0 0 0 0 0 0 0
actuals c 5 4 3 2 1 0 0 0 0 0 0 0
;
run;

 

data fct;
input title $ prod $ jan feb mar apr may jun jul aug sep oct nov dec;
n+1;
cards;
fcast a 9 4 0 8 0 1 2 3 4 5 6 7
fcast b 0 1 2 0 3 7 8 9 1 2 3 4
fcast c 6 0 0 1 0 5 6 7 3 2 1 3
;
run;


%let start_month=5 ;
data temp(drop= title prod i );
set act;
array _a{*} jan feb mar apr may jun jul aug sep oct nov dec;
do i=1 to dim(_a);
 if i gt &amp;amp;start_month then call missing(_a{i});
end;
run;
data fct(drop=n);
 update fct temp;
 by n;
run; 
data want;
 set act(drop=n) fct;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Feb 2012 02:56:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/dynamically-replace-values-every-month/m-p/55410#M15425</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-02-20T02:56:47Z</dc:date>
    </item>
  </channel>
</rss>

