<?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 keep only unique values for a row on multiple column in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152103#M39996</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I need to keep only unique values for a row on multiple column.&lt;/P&gt;&lt;P&gt;Here is an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Input:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Name, Language1,Language2,Language1&lt;/P&gt;&lt;P&gt;Tom, EN,EN,IT&lt;/P&gt;&lt;P&gt;MARK, ES,ES,EN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Desired Output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Name, Language1,Language2,Language1&lt;/P&gt;&lt;P&gt;Tom, EN,IT,''&lt;/P&gt;&lt;P&gt;MARK, ES,EN,''&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance for your help.&lt;/P&gt;&lt;P&gt;Fabio&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 23 Jun 2014 14:39:57 GMT</pubDate>
    <dc:creator>Fabio</dc:creator>
    <dc:date>2014-06-23T14:39:57Z</dc:date>
    <item>
      <title>keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152103#M39996</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I need to keep only unique values for a row on multiple column.&lt;/P&gt;&lt;P&gt;Here is an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Input:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Name, Language1,Language2,Language1&lt;/P&gt;&lt;P&gt;Tom, EN,EN,IT&lt;/P&gt;&lt;P&gt;MARK, ES,ES,EN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Desired Output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Name, Language1,Language2,Language1&lt;/P&gt;&lt;P&gt;Tom, EN,IT,''&lt;/P&gt;&lt;P&gt;MARK, ES,EN,''&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance for your help.&lt;/P&gt;&lt;P&gt;Fabio&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jun 2014 14:39:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152103#M39996</guid>
      <dc:creator>Fabio</dc:creator>
      <dc:date>2014-06-23T14:39:57Z</dc:date>
    </item>
    <item>
      <title>Re: keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152104#M39997</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As in most analysis situations, it's better to have data values in rows rather than in columns.&lt;/P&gt;&lt;P&gt;By transposing your data, you can then use standard procedures, such as SQL, SORT:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select distinct name, language&lt;/P&gt;&lt;P&gt;from want;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jun 2014 14:51:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152104#M39997</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2014-06-23T14:51:35Z</dc:date>
    </item>
    <item>
      <title>Re: keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152105#M39998</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could also use arrays on such data.&amp;nbsp; The below would give you a space delimited list of distinct languages.&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp; attrib Name L1 L2 L3 format=$200.;&lt;BR /&gt;&amp;nbsp; name="Tom"; l1="EN";l2="EN"; l3="IT"; output;&lt;BR /&gt;&amp;nbsp; name="MARK"; l1="ES"; l2="ES"; l3="EN"; output;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data want (drop=i);&lt;BR /&gt;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp; attrib result format=$2000.;&lt;BR /&gt;&amp;nbsp; array l{3};&lt;BR /&gt;&amp;nbsp; do i=1 to 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if index(result,l{i})=0 then result=strip(result)||" "||strip(l{i});&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jun 2014 15:06:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152105#M39998</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-06-23T15:06:01Z</dc:date>
    </item>
    <item>
      <title>Re: keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152106#M39999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Fabio,&lt;/P&gt;&lt;P&gt;I am assuming that you meant to type Language1, Language2 and Language&lt;STRONG&gt;3&lt;/STRONG&gt;.&amp;nbsp; You can drop the input names in the datastep and then rename the lang1 - lang3 variables to be the original Language names.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sql; drop table work.have; quit;&lt;BR /&gt;data have;&lt;BR /&gt;format name $16. Language1 $2. Language2 $2. Language3 $2.;&lt;BR /&gt;input name Language1 Language2 Language3;&lt;BR /&gt;datalines;&lt;BR /&gt;Tom EN EN IT&lt;BR /&gt;MARK ES ES EN&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sql; drop table work.want; quit;&lt;BR /&gt;data want; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array lanz{3} $ language1 language2 language3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; array lano{3} $2 lang1 lang2 lang3 (3*'');&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; do k=1 to 3; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lano(k) = ' ';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to 3;&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; if j&amp;gt; 1 then do;&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; if lanz(k) not = ' ' and lanz(k) not = lano(j-1) and lano(j) = ' ' then lano(j) = lanz(k);&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; end;&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; else do;&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; if lanz(k) not = ' ' and lano(j) = ' ' then lano(j) = lanz(k);&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; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print data=want;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: James Willis&amp;nbsp; If the language(n) needs to be checked in all lang(n) fields, then the do statement will need to be built differently.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jun 2014 15:54:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152106#M39999</guid>
      <dc:creator>jwillis</dc:creator>
      <dc:date>2014-06-23T15:54:31Z</dc:date>
    </item>
    <item>
      <title>Re: keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152107#M40000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you really only have 3 variables, you could just do it the simple way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;if language2=language1 then language2=' ';&lt;/P&gt;&lt;P&gt;if language3 = language2 then language3=' ';&lt;/P&gt;&lt;P&gt;if language3=language1 then language3=' ';&lt;/P&gt;&lt;P&gt;if language2=' ' then language2=language3;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have more than 3 variables, then arrays might be a better choice.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jun 2014 15:56:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152107#M40000</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-06-23T15:56:49Z</dc:date>
    </item>
    <item>
      <title>Re: keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152108#M40001</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you everybody for your precious help&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 08:35:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152108#M40001</guid>
      <dc:creator>Fabio</dc:creator>
      <dc:date>2014-06-24T08:35:56Z</dc:date>
    </item>
    <item>
      <title>Re: keep only unique values for a row on multiple column</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152109#M40002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;data have;
format name $16. Language1 $2. Language2 $2. Language3 $2.;
input name Language1 Language2 Language3;
datalines;
Tom EN EN IT
MARK ES ES EN
;
run;
data want(drop=n i);
 set have;
 array lan{*} $ lang: ;
 array x{100} $ 32 _temporary_;
 n=0;
 do i=1 to dim(lan);
&amp;nbsp;&amp;nbsp; if lan{i} not in x then do;n+1;x{n}=lan{i};end;
 end;
 call missing(of lan{*});
 do i=1 to n;
&amp;nbsp;&amp;nbsp; lan{i}=x{i};
 end;
run;
&amp;nbsp; 
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 14:36:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/keep-only-unique-values-for-a-row-on-multiple-column/m-p/152109#M40002</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-06-24T14:36:39Z</dc:date>
    </item>
  </channel>
</rss>

