<?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: defining lagged values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99630#M258011</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Art. Now I understand that inside ifn() or ifc(), the lag() is always called.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 20 Aug 2012 23:34:08 GMT</pubDate>
    <dc:creator>Haikuo</dc:creator>
    <dc:date>2012-08-20T23:34:08Z</dc:date>
    <item>
      <title>defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99624#M258005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everyone;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have two columns in the data, named seq and los and want to define new variables named laglos, which get the same value when seq=1 and when seq&amp;gt;1, I want it to get the value los for previous seq value. For example &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="349" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#000000&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" style="border: 1px solid rgb(0, 0, 0); width: 217px; height: 330px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px; font-family: arial, helvetica, sans-serif; vertical-align: middle; width: 59px;"&gt;seq&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px; font-family: arial, helvetica, sans-serif; width: 75px;"&gt;&lt;STRONG&gt;los&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;laglos&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;14&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;7&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;9&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;13&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;8&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;4&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;9&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;11&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="padding: 2px; color: #000000; text-align: left; background-color: transparent;"&gt;4&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I try this but it does not work:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data new;&lt;/P&gt;&lt;P&gt;set old;&lt;/P&gt;&lt;P&gt;if seq=1 then laglos=los;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;else laglos=lag1(los);&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;Thanks!&lt;/P&gt;&lt;P&gt;Issac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 22:16:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99624#M258005</guid>
      <dc:creator>issac</dc:creator>
      <dc:date>2012-08-20T22:16:57Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99625#M258006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;laglos=ifn(seq eq &lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10pt; background: white; color: black; font-family: 'Courier New';"&gt;,los,lag(los));&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 22:34:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99625#M258006</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-08-20T22:34:54Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99626#M258007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, another victim of twisted lag(). Lag() is the one function whose function can't be correctly deduced from its name. Here is a way, of course you can also use retain:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data old;&lt;/P&gt;&lt;P&gt;input seq&amp;nbsp;&amp;nbsp;&amp;nbsp; los&amp;nbsp;&amp;nbsp;&amp;nbsp; laglos;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/P&gt;&lt;P&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;/P&gt;&lt;P&gt;6&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data new;&lt;/P&gt;&lt;P&gt;set old;&lt;/P&gt;&lt;P&gt;laglos=ifn(seq=1,los,lag(los));&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;Your original code has two unnecessary output statements, and one of them was wrongly inserted between if and else. If you need to do more than one thing, you need to use do-loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 22:37:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99626#M258007</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-08-20T22:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99627#M258008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Glad to know you are here, DN. I have always wanted to ask, why lag() changes behavior when inside ifn()?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 22:41:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99627#M258008</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-08-20T22:41:53Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99628#M258009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Haikuo: take a look at: &lt;A href="http://www.sascommunity.org/wiki/Conditional_Use_of_LAG"&gt;http://www.sascommunity.org/wiki/Conditional_Use_of_LAG&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 22:53:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99628#M258009</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-08-20T22:53:48Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99629#M258010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks so much for all of you guys! &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 23:07:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99629#M258010</guid>
      <dc:creator>issac</dc:creator>
      <dc:date>2012-08-20T23:07:05Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99630#M258011</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Art. Now I understand that inside ifn() or ifc(), the lag() is always called.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 23:34:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99630#M258011</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-08-20T23:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: defining lagged values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99631#M258012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good to know.&amp;nbsp; If for some reason you don't have IFN, you can always make sure LAG gets used every time:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;laglos = lag(los);&lt;/P&gt;&lt;P&gt;if seq=1 than laglos = seq;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2012 02:49:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/defining-lagged-values/m-p/99631#M258012</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-08-21T02:49:07Z</dc:date>
    </item>
  </channel>
</rss>

