<?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 calculating lag 1, 2 and 3 in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364828#M64692</link>
    <description>&lt;P&gt;I want to calculate 3 lag values of invest i.e. lag1, lag2, lag3, but the problem is some of the years in my data are missing, how could it be treated&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;year&lt;/TD&gt;&lt;TD&gt;CUSIP&lt;/TD&gt;&lt;TD&gt;Invest&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2003&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;3109000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2004&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;2997000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2005&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;3496000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2006&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;2998873&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;4642000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;5006000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;4837000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2012&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;6312000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2003&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;26679&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2004&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;29661&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2005&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;65606&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2007&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;28439&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2008&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;18375&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;62001&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2012&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;39696&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2013&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;39492&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2003&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2004&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2005&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;741997&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2008&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;80947&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;142666&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Wed, 07 Jun 2017 05:16:21 GMT</pubDate>
    <dc:creator>Khang</dc:creator>
    <dc:date>2017-06-07T05:16:21Z</dc:date>
    <item>
      <title>calculating lag 1, 2 and 3</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364828#M64692</link>
      <description>&lt;P&gt;I want to calculate 3 lag values of invest i.e. lag1, lag2, lag3, but the problem is some of the years in my data are missing, how could it be treated&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;year&lt;/TD&gt;&lt;TD&gt;CUSIP&lt;/TD&gt;&lt;TD&gt;Invest&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2003&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;3109000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2004&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;2997000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2005&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;3496000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2006&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;2998873&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;4642000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;5006000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;4837000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2012&lt;/TD&gt;&lt;TD&gt;BN5522&lt;/TD&gt;&lt;TD&gt;6312000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2003&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;26679&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2004&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;29661&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2005&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;65606&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2007&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;28439&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2008&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;18375&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;62001&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2012&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;39696&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2013&lt;/TD&gt;&lt;TD&gt;APC6748L&lt;/TD&gt;&lt;TD&gt;39492&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2003&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2004&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2005&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;741997&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2008&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;80947&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;BM01045&lt;/TD&gt;&lt;TD&gt;142666&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 07 Jun 2017 05:16:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364828#M64692</guid>
      <dc:creator>Khang</dc:creator>
      <dc:date>2017-06-07T05:16:21Z</dc:date>
    </item>
    <item>
      <title>Re: calculating lag 1, 2 and 3</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364829#M64693</link>
      <description>&lt;P&gt;If you have SAS/ETS use PROC EXPAND. You may need to use PROC TIMESERIES to complete the series.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jun 2017 05:18:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364829#M64693</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-06-07T05:18:02Z</dc:date>
    </item>
    <item>
      <title>Re: calculating lag 1, 2 and 3</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364831#M64694</link>
      <description>&lt;P&gt;Instead of using LAG it will be easier to transpose the dataset and then&amp;nbsp;&lt;/P&gt;
&lt;P&gt;define array of yearly invests. Try:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=have
       out=temp(drop=_name_) profix=yr;
  by CUSIP;
  id YEAR;
  var INVEST;
run;&lt;BR /&gt;&lt;BR /&gt;data temp1;&lt;BR /&gt; set temp;&lt;BR /&gt;     array y_invest yr2000-yr2015;&lt;BR /&gt;     ...  any other code to do the job ...&lt;BR /&gt;run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Jun 2017 05:36:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/364831#M64694</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-06-07T05:36:26Z</dc:date>
    </item>
    <item>
      <title>Re: calculating lag 1, 2 and 3</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/365163#M64733</link>
      <description>&lt;P&gt;I take it that you only want exact 1-year, 2-year, and 3-year lags.&amp;nbsp; This program does that.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note I use nested IFN's.&amp;nbsp;&amp;nbsp; That's because every alternative outcome in an IFN is evaluated, whether the if-condition is true or not (i.e. regardless of which outcome is chosen).&amp;nbsp; This ensures that the fifo queues underlying the LAG functions are always properly synchronized.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want (drop=seq);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by cusip;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; seq+1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if first.cusip then seq=1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; lgyears1=&amp;nbsp;&amp;nbsp; ifn(seq&amp;gt;1,ifn(lag1(year)=year-1,lag1(invest),.),.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; lgyears2=&amp;nbsp;&amp;nbsp; ifn(seq&amp;gt;2,ifn(lag2(year)=year-2,lag2(invest),.),.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; lgyears3=&amp;nbsp;&amp;nbsp; ifn(seq&amp;gt;3,ifn(lag3(year)=year-3,lag3(invest),.),.);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now, if you only want to keep years which have a complete set of non-missing lags, then put a subsetting IF statement&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; if nmiss(lgyears1,lgyears2,lgyears3)=0;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;just before the RUN statement.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jun 2017 19:52:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/calculating-lag-1-2-and-3/m-p/365163#M64733</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-06-07T19:52:03Z</dc:date>
    </item>
  </channel>
</rss>

