<?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 collapse table in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467568#M119356</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a table which has 3 character columns and then another 5 character columns.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to collapse the table so there is only 1 row when first 3 columns are same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the remaining 5 columns I want to take the value from the only record in the group which will be non-blank.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;eg.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp; xxx ___&amp;nbsp; ___ ___ ___&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ yyy&amp;nbsp; ___ ___ ___&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ ___&amp;nbsp; ___ ___ ttt&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ ___&amp;nbsp; zzz ___ ___&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ ___&amp;nbsp; ___ sss&amp;nbsp; ___&lt;/P&gt;&lt;P&gt;X Y Z&amp;nbsp;&amp;nbsp;___ bbb ___ ___ ___&lt;/P&gt;&lt;P&gt;X Y Z&amp;nbsp;&amp;nbsp;___ ___ ___ ___ aaa&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired result:&lt;/P&gt;&lt;P&gt;A B C xxx yyy zzz sss ttt&lt;/P&gt;&lt;P&gt;X Y Z ___ bbb ___ ___ aaa&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any assistance will be liked promptly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 05 Jun 2018 04:46:44 GMT</pubDate>
    <dc:creator>markc</dc:creator>
    <dc:date>2018-06-05T04:46:44Z</dc:date>
    <item>
      <title>collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467568#M119356</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a table which has 3 character columns and then another 5 character columns.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to collapse the table so there is only 1 row when first 3 columns are same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the remaining 5 columns I want to take the value from the only record in the group which will be non-blank.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;eg.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp; xxx ___&amp;nbsp; ___ ___ ___&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ yyy&amp;nbsp; ___ ___ ___&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ ___&amp;nbsp; ___ ___ ttt&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ ___&amp;nbsp; zzz ___ ___&lt;/P&gt;&lt;P&gt;A B&amp;nbsp;C&amp;nbsp;&amp;nbsp;___ ___&amp;nbsp; ___ sss&amp;nbsp; ___&lt;/P&gt;&lt;P&gt;X Y Z&amp;nbsp;&amp;nbsp;___ bbb ___ ___ ___&lt;/P&gt;&lt;P&gt;X Y Z&amp;nbsp;&amp;nbsp;___ ___ ___ ___ aaa&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired result:&lt;/P&gt;&lt;P&gt;A B C xxx yyy zzz sss ttt&lt;/P&gt;&lt;P&gt;X Y Z ___ bbb ___ ___ aaa&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any assistance will be liked promptly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 04:46:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467568#M119356</guid>
      <dc:creator>markc</dc:creator>
      <dc:date>2018-06-05T04:46:44Z</dc:date>
    </item>
    <item>
      <title>Re: collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467569#M119357</link>
      <description>&lt;P&gt;To get prompt assistance, provide a detailed example. Your request is very vague at best.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit: Much better now.&amp;nbsp; I now see why &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt; quotes the question&amp;nbsp;in the first reply &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 11:42:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467569#M119357</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2018-06-05T11:42:05Z</dc:date>
    </item>
    <item>
      <title>Re: collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467586#M119365</link>
      <description>&lt;P&gt;Use by-group processing (by your first three columns) in a data step.&lt;/P&gt;
&lt;P&gt;retain new variables for each column you want to accumulate.&lt;/P&gt;
&lt;P&gt;at first.(third variable of the by), set all your new variables to missing/empty&lt;/P&gt;
&lt;P&gt;everytime you encounter a non-missing value, assign it to the corresponding new variable&lt;/P&gt;
&lt;P&gt;at last.(third variable of the by), output.&lt;/P&gt;
&lt;P&gt;keep the three by-variables an the new variables&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 06:32:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467586#M119365</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-06-05T06:32:02Z</dc:date>
    </item>
    <item>
      <title>Re: collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467610#M119375</link>
      <description>&lt;P&gt;One solution is to use merge with WHERE clauses, assuming that your variables are named var1 through var8:&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;data want;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; merge &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; have(keep=var1 var2 var3 var4 where=(var4))&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; have(keep=var1 var2 var3 var5 where=(var5))&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; have(keep=var1 var2 var3 var6 where=(var6))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; have(keep=var1 var2 var3 var7 where=(var7))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; have(keep=var1 var2 var3 var8 where=(var8))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; ;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; by var1 var2 var3;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 10:33:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467610#M119375</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2018-06-05T10:33:09Z</dc:date>
    </item>
    <item>
      <title>Re: collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467631#M119385</link>
      <description>&lt;P&gt;To update records while ignore missing values, the UPDATE statement is usually used.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 11:44:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467631#M119385</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2018-06-05T11:44:02Z</dc:date>
    </item>
    <item>
      <title>Re: collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467649#M119397</link>
      <description>&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;update have(obs=0) have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;by id;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 12:59:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467649#M119397</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-06-05T12:59:38Z</dc:date>
    </item>
    <item>
      <title>Re: collapse table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467650#M119398</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;are moving in the right direction.&amp;nbsp; SInce you haven't told us what the names of your variables are, I'll just use COL1, COL2, and COL3 (and don't care about the other names).&amp;nbsp; This should do it:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=have;&lt;/P&gt;
&lt;P&gt;by col1 col2 col3;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;update have (obs=0) have;&lt;/P&gt;
&lt;P&gt;by col1 col2 col3;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Jun 2018 13:07:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/collapse-table/m-p/467650#M119398</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-06-05T13:07:53Z</dc:date>
    </item>
  </channel>
</rss>

