<?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: SAS Array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171702#M33012</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You likely are looking for a solution involving LAG not array as array works only on variables in one record at a time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unless you want to transpose the data and then transpose back.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 Jul 2014 21:08:53 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2014-07-08T21:08:53Z</dc:date>
    <item>
      <title>SAS Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171701#M33011</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to create a macro for the following problem: For each ID, I want to just retrieve those which changed from no decimal to decimal and then back to no decimal points. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kindly find attached the excel attached. Could anyone please suggest me a array which would retrieve the records (highlighted grey in excel).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Jul 2014 20:05:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171701#M33011</guid>
      <dc:creator>Siddharth123</dc:creator>
      <dc:date>2014-07-08T20:05:40Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171702#M33012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You likely are looking for a solution involving LAG not array as array works only on variables in one record at a time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unless you want to transpose the data and then transpose back.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Jul 2014 21:08:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171702#M33012</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-07-08T21:08:53Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171703#M33013</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you. This is helpful. I tried transpose:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;infile datalines;&lt;/P&gt;&lt;P&gt;input ID TIME monyy5. Point;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1 Jan10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;1 Feb10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1 Mar10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;/P&gt;&lt;P&gt;1 Apr10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1 May10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1 Jun10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;/P&gt;&lt;P&gt;1 Jul10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;1 Aug10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;/P&gt;&lt;P&gt;2 Jan10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;2 Feb10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;2 Mar10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2 Apr10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;/P&gt;&lt;P&gt;2 May10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;/P&gt;&lt;P&gt;3 Jan10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;3 Feb10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;3 Mar10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;/P&gt;&lt;P&gt;3 Apr10&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;proc print;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data test1;&lt;/P&gt;&lt;P&gt;set test;&lt;/P&gt;&lt;P&gt;format TIME monyy5.;&lt;/P&gt;&lt;P&gt;proc print;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proc transpose data=test1&lt;/P&gt;&lt;P&gt;out=tests(drop=_name_) prefix=pt;&lt;/P&gt;&lt;P&gt;By ID;&lt;/P&gt;&lt;P&gt;Var POINT;&lt;/P&gt;&lt;P&gt;Run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a big dataset so per ID I may have say 1000 observations. Would it be possible to have a macro which creates a dataset in which LOOPS for each ID on pt1-ptn and keep only cases which have changed from from no decimal to decimal. For e.g. in this example, it would be pt3 (2.1),pt4(2) &amp;amp; pt6 (2.1),pt7(2) for ID = 1; pt3(2.1),pt4(3) for ID = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Jul 2014 04:25:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171703#M33013</guid>
      <dc:creator>Siddharth123</dc:creator>
      <dc:date>2014-07-09T04:25:27Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171704#M33014</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I also tried to achieve the results, but didnt work-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro A; &lt;/P&gt;&lt;P&gt;data testss;&lt;/P&gt;&lt;P&gt;set tests;&lt;/P&gt;&lt;P&gt;by ID;&lt;/P&gt;&lt;P&gt;array pt (20) _numeric_ pt1 - pt20;&lt;/P&gt;&lt;P&gt;array t (20) _numeric_ t1-t20;&lt;/P&gt;&lt;P&gt;%do i = 1 %to 20;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if pt(i) in (1.1,2.1,2.2) and pt(i + 1) in (1,2) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t(i) = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%mend A; &lt;/P&gt;&lt;P&gt;%A; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help will be much appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Jul 2014 07:02:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171704#M33014</guid>
      <dc:creator>Siddharth123</dc:creator>
      <dc:date>2014-07-09T07:02:10Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171705#M33015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As your data is currently normalized, why not use SQL to get the information:&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;infile datalines;&lt;BR /&gt;input ID TIME monyy5. Point;&lt;BR /&gt;datalines;&lt;BR /&gt;1 Jan10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;1 Feb10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;1 Mar10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;BR /&gt;1 Apr10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;1 May10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;1 Jun10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;BR /&gt;1 Jul10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;1 Aug10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;BR /&gt;2 Jan10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;2 Feb10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;2 Mar10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;2 Apr10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;BR /&gt;2 May10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;BR /&gt;3 Jan10&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;3 Feb10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;3 Mar10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1&lt;BR /&gt;3 Apr10&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;&amp;nbsp; create table WANT as&lt;BR /&gt;&amp;nbsp; select&amp;nbsp; BASE.ID,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BASE.TIME,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BASE.POINT&lt;BR /&gt;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp; WORK.TEST BASE&lt;BR /&gt;&amp;nbsp; where&amp;nbsp;&amp;nbsp; BASE.POINT - int(BASE.POINT) &amp;gt; 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp;&amp;nbsp; EXISTS(select distinct &lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THIS.ID &lt;BR /&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; from&amp;nbsp;&amp;nbsp; WORK.TEST THIS &lt;BR /&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; where&amp;nbsp; THIS.ID=BASE.ID&lt;BR /&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; and&amp;nbsp;&amp;nbsp; THIS.TIME &amp;gt; BASE.TIME);&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above only gives you the actual y.x result, but its straight forward to find the next or previous row = min(time) &amp;gt; base.time.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Jul 2014 08:58:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Array/m-p/171705#M33015</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-07-09T08:58:14Z</dc:date>
    </item>
  </channel>
</rss>

