<?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: Lag to calculate, then lag calculated value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505882#M135529</link>
    <description>Perfect. Thank you very much.</description>
    <pubDate>Fri, 19 Oct 2018 10:12:08 GMT</pubDate>
    <dc:creator>satkin2</dc:creator>
    <dc:date>2018-10-19T10:12:08Z</dc:date>
    <item>
      <title>Lag to calculate, then lag calculated value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505872#M135523</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm sure this is fairly straight forward but I just can't get my head around how.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've got a table with a base value for the first record in a category.&amp;nbsp; All other rows within this category have an adjustment rate.&amp;nbsp; I want to work out the new value based upon this adjustment rate.&amp;nbsp; But it's sequential, so row 1 value * row 2 rate = row 2 value, row 2 value * row 3 rate = row 3 value etc.&amp;nbsp; It's not the easiest thing to articulate, so here's an example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Starting table&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Class&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Month&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Adjustment_Rate&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Base_Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Jan-18&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;10.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Feb-18&lt;/TD&gt;&lt;TD&gt;0.96&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Mar-18&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Apr-18&lt;/TD&gt;&lt;TD&gt;1.02&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;May-18&lt;/TD&gt;&lt;TD&gt;1.05&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Jan-18&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;15.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Feb-18&lt;/TD&gt;&lt;TD&gt;0.94&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Mar-18&lt;/TD&gt;&lt;TD&gt;1.00&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Apr-18&lt;/TD&gt;&lt;TD&gt;1.03&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;May-18&lt;/TD&gt;&lt;TD&gt;1.03&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;This is what I want in the end (I'd subsequently drop Base_Value)&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Class&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Month&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Adjustment_Rate&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Base_Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;New_Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Jan-18&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;10.00&lt;/TD&gt;&lt;TD&gt;10.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Feb-18&lt;/TD&gt;&lt;TD&gt;0.96&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;9.60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Mar-18&lt;/TD&gt;&lt;TD&gt;0.99&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;9.50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;Apr-18&lt;/TD&gt;&lt;TD&gt;1.02&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;9.69&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 1&lt;/TD&gt;&lt;TD&gt;May-18&lt;/TD&gt;&lt;TD&gt;1.05&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;10.18&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Jan-18&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;15.00&lt;/TD&gt;&lt;TD&gt;15.00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Feb-18&lt;/TD&gt;&lt;TD&gt;0.94&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;14.10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Mar-18&lt;/TD&gt;&lt;TD&gt;1.00&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;14.10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;Apr-18&lt;/TD&gt;&lt;TD&gt;1.03&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;14.52&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Category 2&lt;/TD&gt;&lt;TD&gt;May-18&lt;/TD&gt;&lt;TD&gt;1.03&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;14.96&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm assuming I need to use a lag function,&amp;nbsp;e.g. lag Base_Value, but on observation 2 I need to lag the new value.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Edit: Fixing typos.&lt;/P&gt;</description>
      <pubDate>Fri, 19 Oct 2018 09:46:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505872#M135523</guid>
      <dc:creator>satkin2</dc:creator>
      <dc:date>2018-10-19T09:46:52Z</dc:date>
    </item>
    <item>
      <title>Re: Lag to calculate, then lag calculated value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505880#M135527</link>
      <description>&lt;P&gt;No need for lag(), but for retain:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
by class;
retain new_value;
if first.class
then new_value = base_value;
else new_value = new_value * adjustment_rate;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 19 Oct 2018 10:02:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505880#M135527</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-10-19T10:02:05Z</dc:date>
    </item>
    <item>
      <title>Re: Lag to calculate, then lag calculated value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505882#M135529</link>
      <description>Perfect. Thank you very much.</description>
      <pubDate>Fri, 19 Oct 2018 10:12:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-to-calculate-then-lag-calculated-value/m-p/505882#M135529</guid>
      <dc:creator>satkin2</dc:creator>
      <dc:date>2018-10-19T10:12:08Z</dc:date>
    </item>
  </channel>
</rss>

