<?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 Cleaning up Arrays in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24121#M5438</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;WhichC sounds like a good idea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;323&amp;nbsp; data test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;324&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array c[5] $3;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;325&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input c&lt;LI&gt;;&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;326&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;327&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'NOTE: Before (' (c&lt;LI&gt;)(+1 $3.) ' )';&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to dim(c);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;329&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i gt whichC(c&lt;I&gt;,of c&lt;/I&gt;&lt;LI&gt;&lt;I&gt;) then call missing(c&lt;I&gt;);&lt;/I&gt;&lt;/I&gt;&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;330&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;331&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'NOTE- After&amp;nbsp; (' (c&lt;LI&gt;)(+1 $3.) ' )';&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cards;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;NOTE: Before ( cat dog hen cat dog )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; After&amp;nbsp; ( cat dog hen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;NOTE: Before ( cat cat cat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; After&amp;nbsp; ( cat&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; )&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 01 Jul 2011 11:16:15 GMT</pubDate>
    <dc:creator>data_null__</dc:creator>
    <dc:date>2011-07-01T11:16:15Z</dc:date>
    <item>
      <title>Cleaning up Arrays</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24117#M5434</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Guys, I have an issue where I have to delete duplicate elements of a character array.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Array1:&amp;nbsp; [cat dog hen cat dog] ----&amp;gt; [cat dog hen]&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;Array2:&amp;nbsp; [cat cat cat] ----&amp;gt; [cat]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to maintain the original order.&amp;nbsp; Any ideas?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jun 2011 20:06:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24117#M5434</guid>
      <dc:creator>ritam2011</dc:creator>
      <dc:date>2011-06-30T20:06:40Z</dc:date>
    </item>
    <item>
      <title>Cleaning up Arrays</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24118#M5435</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; What about all the ladies? :smileyangry:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use a loop that searches the rest of the array for the same value, if the value is the same set it to missing instead.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or use whichc to find the other variables and the index for it to again set it to missing.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the end you may need to shorten your array by dropping some variables. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There was a solution posted recently for a similar problem but with airplane codes and looking for flight paths I think....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jun 2011 20:18:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24118#M5435</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2011-06-30T20:18:52Z</dc:date>
    </item>
    <item>
      <title>Cleaning up Arrays</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24119#M5436</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Here's a really dumb idea but it should work:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do i = 1 to N;&amp;nbsp; (for each element of array - N is number of elements of array)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if carray&lt;I&gt; ~= '' then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j = i+1 to N;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (for all following elements)&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; if carray&lt;I&gt; = carray&lt;J&gt; then carray&lt;J&gt; = '';&amp;nbsp;&amp;nbsp; (wipe out all elements same as carray&lt;I&gt;)&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the end of this loop, you have an array with holes in it, but dup elements are gone.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want, you can squish the array so that the elements are contiguous via:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pos = 1;&lt;/P&gt;&lt;P&gt;do i = 1 to N;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if carray&lt;I&gt; ~= '' then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; carray[pos] = carray&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = pos + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not elegant, but should work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another idea is, if instead of array, the source is a really long string, then tranwrd() can be used to eliminate words without looping.&amp;nbsp; This makes the dup word elimination easier, but you pick up other headaches of keeping track of what's been done already,... etc.&amp;nbsp; Don't think this will be more efficient to execute.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jun 2011 20:29:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24119#M5436</guid>
      <dc:creator>DLing</dc:creator>
      <dc:date>2011-06-30T20:29:20Z</dc:date>
    </item>
    <item>
      <title>Cleaning up Arrays</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24120#M5437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why not use Hash Table which has this ability.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2011 05:15:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24120#M5437</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-07-01T05:15:13Z</dc:date>
    </item>
    <item>
      <title>Cleaning up Arrays</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24121#M5438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;WhichC sounds like a good idea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;323&amp;nbsp; data test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;324&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array c[5] $3;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;325&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input c&lt;LI&gt;;&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;326&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;327&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'NOTE: Before (' (c&lt;LI&gt;)(+1 $3.) ' )';&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to dim(c);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;329&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i gt whichC(c&lt;I&gt;,of c&lt;/I&gt;&lt;LI&gt;&lt;I&gt;) then call missing(c&lt;I&gt;);&lt;/I&gt;&lt;/I&gt;&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;330&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;331&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put 'NOTE- After&amp;nbsp; (' (c&lt;LI&gt;)(+1 $3.) ' )';&lt;/LI&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt;332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cards;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: black; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;NOTE: Before ( cat dog hen cat dog )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; After&amp;nbsp; ( cat dog hen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;NOTE: Before ( cat cat cat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; color: blue; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; After&amp;nbsp; ( cat&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; )&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2011 11:16:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24121#M5438</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2011-07-01T11:16:15Z</dc:date>
    </item>
    <item>
      <title>Cleaning up Arrays</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24122#M5439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks everyone for your help.&amp;nbsp; I ended up using D-Ling's suggestions for the nested DO loop to check all values on each row and replacing duplicates with a missing value. One thing I did notice (prob since I'm new to this) was that I had to use ' ' instead of . to replace a value with a missing value or else the column width became extremely large.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2011 13:49:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Cleaning-up-Arrays/m-p/24122#M5439</guid>
      <dc:creator>ritam2011</dc:creator>
      <dc:date>2011-07-01T13:49:29Z</dc:date>
    </item>
  </channel>
</rss>

