<?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 Lag() and proc tabulate output in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Lag-and-proc-tabulate-output/m-p/146973#M297423</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So I have the output of a TABULATE constructed as so:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc tabulate data=super.whytrends out=tabulate format=comma8.1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; class district screwed whichyear; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; table distrcit, whichyear*screwed*(n rowpctn)/printmiss;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; format district district. screwed screwed.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where whichyear=2007 or whichyear=2013;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Screwed is a dummy variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I then sorted it based on district and screwed, which left me with a dataset that looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;District&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Whichyear&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Screwed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; percent&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007&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; 0&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&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; 0&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007&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; 1&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&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; 1&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;etc...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using &lt;A href="http://www.lexjansen.com/nesug/nesug07/cc/cc16.pdf" title="http://www.lexjansen.com/nesug/nesug07/cc/cc16.pdf"&gt;http://www.lexjansen.com/nesug/nesug07/cc/cc16.pdf&lt;/A&gt; as a reference, I then used lag() to compare the data between different years of the screwed variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabulate; merge tabulate(drop=_type_ _page_ _table_) &lt;EM&gt;otherfile1 otherfile2&lt;/EM&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by circdist;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; seven_pct=lag(pctn_100);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if whichyear=2007 then seven_pct=.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if whichyear=2013 then diff=pctn_100-seven_pct;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This works, but it isn't extensible if I wanted to compare more years. However, when I tried to replace the whichyear= statements with first.screwed and not first.screwed, SAS tossed a "Variable first.screwed is not initialized" error. Is this because screwed isn't part of the by statement? If so, can I put it in the by statement even though it isn't in &lt;EM&gt;otherfile1 &lt;/EM&gt;and &lt;EM&gt;otherfile2&lt;/EM&gt;?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 16 Sep 2014 16:51:32 GMT</pubDate>
    <dc:creator>scify</dc:creator>
    <dc:date>2014-09-16T16:51:32Z</dc:date>
    <item>
      <title>Lag() and proc tabulate output</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-and-proc-tabulate-output/m-p/146973#M297423</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So I have the output of a TABULATE constructed as so:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc tabulate data=super.whytrends out=tabulate format=comma8.1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; class district screwed whichyear; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; table distrcit, whichyear*screwed*(n rowpctn)/printmiss;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; format district district. screwed screwed.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; where whichyear=2007 or whichyear=2013;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Screwed is a dummy variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I then sorted it based on district and screwed, which left me with a dataset that looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;District&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Whichyear&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Screwed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; percent&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007&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; 0&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&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; 0&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007&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; 1&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Dist1&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013&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; 1&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; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/P&gt;&lt;P&gt;etc...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using &lt;A href="http://www.lexjansen.com/nesug/nesug07/cc/cc16.pdf" title="http://www.lexjansen.com/nesug/nesug07/cc/cc16.pdf"&gt;http://www.lexjansen.com/nesug/nesug07/cc/cc16.pdf&lt;/A&gt; as a reference, I then used lag() to compare the data between different years of the screwed variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabulate; merge tabulate(drop=_type_ _page_ _table_) &lt;EM&gt;otherfile1 otherfile2&lt;/EM&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by circdist;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; seven_pct=lag(pctn_100);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if whichyear=2007 then seven_pct=.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if whichyear=2013 then diff=pctn_100-seven_pct;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This works, but it isn't extensible if I wanted to compare more years. However, when I tried to replace the whichyear= statements with first.screwed and not first.screwed, SAS tossed a "Variable first.screwed is not initialized" error. Is this because screwed isn't part of the by statement? If so, can I put it in the by statement even though it isn't in &lt;EM&gt;otherfile1 &lt;/EM&gt;and &lt;EM&gt;otherfile2&lt;/EM&gt;?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2014 16:51:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-and-proc-tabulate-output/m-p/146973#M297423</guid>
      <dc:creator>scify</dc:creator>
      <dc:date>2014-09-16T16:51:32Z</dc:date>
    </item>
    <item>
      <title>Re: Lag() and proc tabulate output</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-and-proc-tabulate-output/m-p/146974#M297424</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To use first. and last. notation the variable has to be on the by statement. Since Merge will get odd results. Merge the data. Then use the Merged data in a separate data step to use the first and last.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabulate; merge tabulate(drop=_type_ _page_ _table_) &lt;EM&gt;otherfile1 otherfile2&lt;/EM&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by circdist;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data tabulate;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set tabulate;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by&amp;nbsp; cirdist whichyear screwed;&lt;/P&gt;&lt;P&gt;&amp;lt;calculations here&amp;gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2014 19:15:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-and-proc-tabulate-output/m-p/146974#M297424</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-09-16T19:15:40Z</dc:date>
    </item>
  </channel>
</rss>

