<?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 How to lag a column based on date difference in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363938#M86243</link>
    <description>&lt;P&gt;Hi SASUSERs,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I needed to lag the column variable based on the number of month different between start and end date. Below is the input data set and desired output.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I appreciate your input.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;input dataset:&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="314"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="68"&gt;Type&lt;/TD&gt;
&lt;TD width="68"&gt;st_dt&lt;/TD&gt;
&lt;TD width="21"&gt;id&lt;/TD&gt;
&lt;TD width="68"&gt;ed_dt&lt;/TD&gt;
&lt;TD width="89"&gt;amnt&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;100.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;200.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;300.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;10.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;50.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;105.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;210.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;140.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;130.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;124.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;242.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;298.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;desired output;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="285"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="25"&gt;Type&lt;/TD&gt;
&lt;TD width="68"&gt;st_dt&lt;/TD&gt;
&lt;TD width="64"&gt;id&lt;/TD&gt;
&lt;TD width="64"&gt;ed_dt&lt;/TD&gt;
&lt;TD width="64"&gt;amnt&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;100.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;200.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;300.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;50.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;105.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;130.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;Here is what I started with but it is not working as I expected it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; xyz();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data t2;&lt;/P&gt;
&lt;P&gt;set inputdsn;&lt;/P&gt;
&lt;P&gt;by type act_dte;&lt;/P&gt;
&lt;P&gt;%do lag_value= &lt;STRONG&gt;1&lt;/STRONG&gt; %to &lt;STRONG&gt;70&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;if not first.type and first.st_dt then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if st_dt ne lag&amp;amp;lag_value(st_dt) then&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lag_amnt = lag&amp;amp;lag_value(amnt);&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;xyz&lt;/EM&gt;&lt;/STRONG&gt;();&lt;/P&gt;</description>
    <pubDate>Fri, 23 Jun 2017 14:08:03 GMT</pubDate>
    <dc:creator>zqkal</dc:creator>
    <dc:date>2017-06-23T14:08:03Z</dc:date>
    <item>
      <title>How to lag a column based on date difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363938#M86243</link>
      <description>&lt;P&gt;Hi SASUSERs,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I needed to lag the column variable based on the number of month different between start and end date. Below is the input data set and desired output.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I appreciate your input.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;input dataset:&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="314"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="68"&gt;Type&lt;/TD&gt;
&lt;TD width="68"&gt;st_dt&lt;/TD&gt;
&lt;TD width="21"&gt;id&lt;/TD&gt;
&lt;TD width="68"&gt;ed_dt&lt;/TD&gt;
&lt;TD width="89"&gt;amnt&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;100.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;200.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;300.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;10.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;50.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;105.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;210.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;140.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;130.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;124.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;242.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;298.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;desired output;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="285"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="25"&gt;Type&lt;/TD&gt;
&lt;TD width="68"&gt;st_dt&lt;/TD&gt;
&lt;TD width="64"&gt;id&lt;/TD&gt;
&lt;TD width="64"&gt;ed_dt&lt;/TD&gt;
&lt;TD width="64"&gt;amnt&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;100.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;200.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;300.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;50.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BB&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;105.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;12/1/2016&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;1/1/2017&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;2/1/2017&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;CC&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3/1/2017&lt;/TD&gt;
&lt;TD&gt;130.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;Here is what I started with but it is not working as I expected it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; xyz();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data t2;&lt;/P&gt;
&lt;P&gt;set inputdsn;&lt;/P&gt;
&lt;P&gt;by type act_dte;&lt;/P&gt;
&lt;P&gt;%do lag_value= &lt;STRONG&gt;1&lt;/STRONG&gt; %to &lt;STRONG&gt;70&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;if not first.type and first.st_dt then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if st_dt ne lag&amp;amp;lag_value(st_dt) then&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lag_amnt = lag&amp;amp;lag_value(amnt);&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;xyz&lt;/EM&gt;&lt;/STRONG&gt;();&lt;/P&gt;</description>
      <pubDate>Fri, 23 Jun 2017 14:08:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363938#M86243</guid>
      <dc:creator>zqkal</dc:creator>
      <dc:date>2017-06-23T14:08:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to lag a column based on date difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363944#M86245</link>
      <description>&lt;P&gt;In your code you use different variable names then given with the data:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; deal_name&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;act_dte &amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;issuance_date &amp;nbsp;&lt;/STRONG&gt;are not mentioned with the data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It is not clear, what are you trying to do and how dates are involved.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What are the rules.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2017 21:42:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363944#M86245</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-06-02T21:42:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to lag a column based on date difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363955#M86249</link>
      <description>&lt;P&gt;Show an example of the code that was working before you attempted the macro.&lt;/P&gt;
&lt;P&gt;If you didn't have that, then get some working for a few fixed versions of LAG.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that LAG in IF statements is very problematic for success in general.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And you need to expand an your "rule" as what is going is not obvious at all. Like show row by row why the value is selected in the output.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2017 22:45:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363955#M86249</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-06-02T22:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to lag a column based on date difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363982#M86258</link>
      <description>&lt;P&gt;Very interesting.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs truncover;
input Type $	st_dt : $20.	id	ed_dt : $20.	amnt;
cards;
AA	12/1/2016	0	1/1/2017	100.00
AA	1/1/2017	1	1/1/2017	200.00
AA	2/1/2017	2	1/1/2017	300.00
AA	3/1/2017	3	1/1/2017	10.00
BB	12/1/2016	0	2/1/2017	50.00
BB	1/1/2017	1	2/1/2017	105.00
BB	2/1/2017	2	2/1/2017	210.00
BB	3/1/2017	3	2/1/2017	140.00
CC	12/1/2016	0	3/1/2017	130.00
CC	1/1/2017	1	3/1/2017	124.00
CC	2/1/2017	2	3/1/2017	242.00
CC	3/1/2017	3	3/1/2017	298.00
;
run;


data temp;
 set have(keep=type amnt);
 by type;
 n+first.type;
 if first.type then do;
  do i=1 to n;
   _amnt=.;output;
  end;
  _amnt=amnt;output;
 end;
 else do;_amnt=amnt;output;end;
 keep type _amnt;
run;
data want;
 ina=0;
 merge have(in=ina) temp;
 by type;
 if ina;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 03 Jun 2017 04:15:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-lag-a-column-based-on-date-difference/m-p/363982#M86258</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-06-03T04:15:15Z</dc:date>
    </item>
  </channel>
</rss>

