<?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 Create rate based on previous date; in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305543#M270504</link>
    <description>&lt;P&gt;I am trying to create a dataset with yearmonth and the decreasing rate.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to create a dataset with date variable and average rate decaying at a fix rate; After 50 months I want the value to be equal to the &lt;/P&gt;
&lt;P&gt;to avg_date as after certain time peroid it will be zero and negative.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%let avg_dt=0.02345;&lt;BR /&gt;%let avg_date=0.01234;&lt;BR /&gt;%let projected_month=50;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This give of rate of decrease to be 0.00016&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For first obs,&amp;nbsp; date=201708 and rate=0.02345;&lt;/P&gt;
&lt;P&gt;for second obs, date=201708 and rate=(0.02345-00016)=0.023289&lt;/P&gt;
&lt;P&gt;for third obs, date=201708 and rate=0.023289-00016=0.023128&lt;/P&gt;
&lt;P&gt;so that the fifth obs rate=0.01234;&lt;/P&gt;
&lt;P&gt;for the date value after that, i want to retain this value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="64"&gt;&lt;COLGROUP&gt;&lt;COL width="64" /&gt;&lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="height: 14.5pt; width: 48pt;" align="right" height="19" width="64"&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;data dates;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; format date yymmn6.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date=201601;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; do while(date=202501);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date=intnx('month', date, 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; rate=lag(&amp;amp;avg_dt)-00016;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you in advance.&lt;/P&gt;</description>
    <pubDate>Tue, 18 Oct 2016 21:39:44 GMT</pubDate>
    <dc:creator>devnand</dc:creator>
    <dc:date>2016-10-18T21:39:44Z</dc:date>
    <item>
      <title>Create rate based on previous date;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305543#M270504</link>
      <description>&lt;P&gt;I am trying to create a dataset with yearmonth and the decreasing rate.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to create a dataset with date variable and average rate decaying at a fix rate; After 50 months I want the value to be equal to the &lt;/P&gt;
&lt;P&gt;to avg_date as after certain time peroid it will be zero and negative.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%let avg_dt=0.02345;&lt;BR /&gt;%let avg_date=0.01234;&lt;BR /&gt;%let projected_month=50;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This give of rate of decrease to be 0.00016&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For first obs,&amp;nbsp; date=201708 and rate=0.02345;&lt;/P&gt;
&lt;P&gt;for second obs, date=201708 and rate=(0.02345-00016)=0.023289&lt;/P&gt;
&lt;P&gt;for third obs, date=201708 and rate=0.023289-00016=0.023128&lt;/P&gt;
&lt;P&gt;so that the fifth obs rate=0.01234;&lt;/P&gt;
&lt;P&gt;for the date value after that, i want to retain this value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="64"&gt;&lt;COLGROUP&gt;&lt;COL width="64" /&gt;&lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="height: 14.5pt; width: 48pt;" align="right" height="19" width="64"&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;data dates;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; format date yymmn6.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date=201601;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; do while(date=202501);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date=intnx('month', date, 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; rate=lag(&amp;amp;avg_dt)-00016;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you in advance.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Oct 2016 21:39:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305543#M270504</guid>
      <dc:creator>devnand</dc:creator>
      <dc:date>2016-10-18T21:39:44Z</dc:date>
    </item>
    <item>
      <title>Re: Create rate based on previous date;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305556#M270505</link>
      <description>&lt;P&gt;The program here depends highly on what you start with.&lt;/P&gt;
&lt;P&gt;What does your starting data set look like, or are you creating one from scratch?&lt;/P&gt;</description>
      <pubDate>Tue, 18 Oct 2016 23:03:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305556#M270505</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-10-18T23:03:29Z</dc:date>
    </item>
    <item>
      <title>Re: Create rate based on previous date;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305558#M270506</link>
      <description>Yes, it is from scratch.</description>
      <pubDate>Tue, 18 Oct 2016 23:07:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305558#M270506</guid>
      <dc:creator>devnand</dc:creator>
      <dc:date>2016-10-18T23:07:38Z</dc:date>
    </item>
    <item>
      <title>Re: Create rate based on previous date;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305577#M270507</link>
      <description>&lt;P&gt;You've assumed month is holding its value from line to line.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Treat the rate variable the same.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dont use lag function, replace it with Rate. This won't answer all your questions but should get you started in right direction.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Oct 2016 03:30:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305577#M270507</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-10-19T03:30:38Z</dc:date>
    </item>
    <item>
      <title>Re: Create rate based on previous date;</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305579#M270508</link>
      <description>&lt;P&gt;Have your pick between &lt;EM&gt;rate1&lt;/EM&gt; and &lt;EM&gt;rate2&lt;/EM&gt; :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let avg_dt=0.02345;
%let avg_date=0.01234;
%let projected_month=50;
%let startMonth=01AUG2017;

data rates;
do i = 0 to &amp;amp;projected_month;
    month = intnx("MONTH", "&amp;amp;startMonth"d, i);
    rate1 = &amp;amp;avg_dt + (&amp;amp;avg_date-&amp;amp;avg_dt)*i/&amp;amp;projected_month;
    rate2 = &amp;amp;avg_dt * (&amp;amp;avg_date/&amp;amp;avg_dt)**(i/&amp;amp;projected_month);
    output;
    end;
format month yymmn6. rate1 rate2 8.5;
drop i;
run;

proc print; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Oct 2016 03:43:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-rate-based-on-previous-date/m-p/305579#M270508</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-10-19T03:43:12Z</dc:date>
    </item>
  </channel>
</rss>

