<?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: Conditional lag in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217133#M53441</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You shouldn't use lag this way, set up your lag variables and then use those conditionally:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;infile cards dsd dlm=',';&lt;/P&gt;&lt;P&gt;input ObjectPrice&amp;nbsp;&amp;nbsp;&amp;nbsp; Regnr $&amp;nbsp;&amp;nbsp;&amp;nbsp; depreciation&amp;nbsp;&amp;nbsp;&amp;nbsp; Counter&amp;nbsp;&amp;nbsp;&amp;nbsp; Primary&amp;nbsp;&amp;nbsp;&amp;nbsp; opprinpris&amp;nbsp;&amp;nbsp;&amp;nbsp; transaksjonstid&amp;nbsp;&amp;nbsp;&amp;nbsp; est_price;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;2237500.00,AE28404,0.000416667,1,1,2237500,,&lt;/P&gt;&lt;P&gt;1600000.00,AE28404,0.000277667,2,0,2237500,1096,1556578.033&lt;/P&gt;&lt;P&gt;1100000.00,AE30864,0.000277667,1,1,1100000,,&lt;/P&gt;&lt;P&gt;800000.00,AR99993,0.000277667,1,1,800000,,&lt;/P&gt;&lt;P&gt;795000.00,AR99993,0.000277667,2,0,800000,398,711590.9333&lt;/P&gt;&lt;P&gt;799000.00,AR99993,0.000277667,3,0,800000,32,&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 want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;l1=lag(transaksjonstid);&lt;/P&gt;&lt;P&gt;l2=lag2(transaksjonstid);&lt;/P&gt;&lt;P&gt;if counter = 3 then test = transaksjonstid + l1;&lt;/P&gt;&lt;P&gt;else if counter= 4 then test = transaksjonstid + l1 + l2;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 19 May 2015 15:24:40 GMT</pubDate>
    <dc:creator>Steelers_In_DC</dc:creator>
    <dc:date>2015-05-19T15:24:40Z</dc:date>
    <item>
      <title>Conditional lag</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217129#M53437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; I have this type of data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="width: 593px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD height="20" width="79"&gt;ObjectPrice&lt;/TD&gt;&lt;TD width="59"&gt;Regnr&lt;/TD&gt;&lt;TD width="86"&gt;depreciation&lt;/TD&gt;&lt;TD width="57"&gt;Counter&lt;/TD&gt;&lt;TD width="55"&gt;Primary&lt;/TD&gt;&lt;TD width="71"&gt;opprinpris&lt;/TD&gt;&lt;TD width="102"&gt;transaksjonstid&lt;/TD&gt;&lt;TD width="84"&gt;est_price&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl66" height="20"&gt;2237500,00&lt;/TD&gt;&lt;TD class="xl65"&gt;AE28404&lt;/TD&gt;&lt;TD align="right"&gt;0,000416667&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;2237500&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl66" height="20"&gt;1600000,00&lt;/TD&gt;&lt;TD class="xl65"&gt;AE28404&lt;/TD&gt;&lt;TD align="right"&gt;0,000277667&lt;/TD&gt;&lt;TD align="right"&gt;2&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;TD align="right"&gt;2237500&lt;/TD&gt;&lt;TD align="right"&gt;1096&lt;/TD&gt;&lt;TD align="right"&gt;1556578,033&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl66" height="20"&gt;1100000,00&lt;/TD&gt;&lt;TD class="xl65"&gt;AE30864&lt;/TD&gt;&lt;TD align="right"&gt;0,000277667&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;1100000&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl66" height="20"&gt;800000,00&lt;/TD&gt;&lt;TD class="xl65"&gt;AR99993&lt;/TD&gt;&lt;TD align="right"&gt;0,000277667&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;1&lt;/TD&gt;&lt;TD align="right"&gt;800000&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl66" height="20"&gt;795000,00&lt;/TD&gt;&lt;TD class="xl65"&gt;AR99993&lt;/TD&gt;&lt;TD align="right"&gt;0,000277667&lt;/TD&gt;&lt;TD align="right"&gt;2&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;TD align="right"&gt;800000&lt;/TD&gt;&lt;TD align="right"&gt;398&lt;/TD&gt;&lt;TD align="right"&gt;711590,9333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD align="right" class="xl66" height="20"&gt;799000,00&lt;/TD&gt;&lt;TD class="xl65"&gt;AR99993&lt;/TD&gt;&lt;TD align="right"&gt;0,000277667&lt;/TD&gt;&lt;TD align="right"&gt;3&lt;/TD&gt;&lt;TD align="right"&gt;0&lt;/TD&gt;&lt;TD align="right"&gt;800000&lt;/TD&gt;&lt;TD align="right"&gt;32&lt;/TD&gt;&lt;TD align="right"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want&lt;/P&gt;&lt;P&gt;IF counter = 3 then transaksjonstid= lag (transaksjonstid)+(transaksjonstid) &lt;/P&gt;&lt;P&gt;else if counter =4 then transaksjonstid = lag2(transaksjonstid)+lag(transaksjonstid) +transaksjonstid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;etc...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 13:31:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217129#M53437</guid>
      <dc:creator>Kiteulf</dc:creator>
      <dc:date>2015-05-19T13:31:18Z</dc:date>
    </item>
    <item>
      <title>Re: Conditional lag</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217130#M53438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Code not tested.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;lag_transaksjonstid=&lt;/SPAN&gt;lag (transaksjonstid);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;lag_transaksjonstid2=&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;lag 2(transaksjonstid);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;IF counter = 3 then transaksjonstid=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;lag_transaksjonstid&lt;/SPAN&gt;+transaksjonstid;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;else if counter =4 then transaksjonstid = &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;lag_transaksjonstid2&lt;/SPAN&gt;+&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;lag_transaksjonstid&lt;/SPAN&gt; +transaksjonstid;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 13:48:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217130#M53438</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-05-19T13:48:03Z</dc:date>
    </item>
    <item>
      <title>Re: Conditional lag</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217131#M53439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not entirely sure on your logic, but it sounds like a join or subquery (possibly hash) would be easier:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;proc sql;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table WANT as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select 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; (select sum(TRANSAKSJONSTID) from HAVE where REGNR=A.REGNR and (A.COUNTER-COUNTER) &amp;lt;= COUNTER &amp;lt;= A.COUNTER))&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; as TOT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAVE A;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;quit; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 13:48:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217131#M53439</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-05-19T13:48:46Z</dc:date>
    </item>
    <item>
      <title>Re: Conditional lag</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217132#M53440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do not call the lag() function conditionally, as it feeds its queue only when called. If you don't call it for N records, the first call at N+1 will still yield the initial missing value, instead of the expected value from the observation N!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 13:56:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217132#M53440</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2015-05-19T13:56:09Z</dc:date>
    </item>
    <item>
      <title>Re: Conditional lag</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217133#M53441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You shouldn't use lag this way, set up your lag variables and then use those conditionally:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;infile cards dsd dlm=',';&lt;/P&gt;&lt;P&gt;input ObjectPrice&amp;nbsp;&amp;nbsp;&amp;nbsp; Regnr $&amp;nbsp;&amp;nbsp;&amp;nbsp; depreciation&amp;nbsp;&amp;nbsp;&amp;nbsp; Counter&amp;nbsp;&amp;nbsp;&amp;nbsp; Primary&amp;nbsp;&amp;nbsp;&amp;nbsp; opprinpris&amp;nbsp;&amp;nbsp;&amp;nbsp; transaksjonstid&amp;nbsp;&amp;nbsp;&amp;nbsp; est_price;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;2237500.00,AE28404,0.000416667,1,1,2237500,,&lt;/P&gt;&lt;P&gt;1600000.00,AE28404,0.000277667,2,0,2237500,1096,1556578.033&lt;/P&gt;&lt;P&gt;1100000.00,AE30864,0.000277667,1,1,1100000,,&lt;/P&gt;&lt;P&gt;800000.00,AR99993,0.000277667,1,1,800000,,&lt;/P&gt;&lt;P&gt;795000.00,AR99993,0.000277667,2,0,800000,398,711590.9333&lt;/P&gt;&lt;P&gt;799000.00,AR99993,0.000277667,3,0,800000,32,&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 want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;l1=lag(transaksjonstid);&lt;/P&gt;&lt;P&gt;l2=lag2(transaksjonstid);&lt;/P&gt;&lt;P&gt;if counter = 3 then test = transaksjonstid + l1;&lt;/P&gt;&lt;P&gt;else if counter= 4 then test = transaksjonstid + l1 + l2;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 15:24:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Conditional-lag/m-p/217133#M53441</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2015-05-19T15:24:40Z</dc:date>
    </item>
  </channel>
</rss>

