<?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: counting unic valuee in a row in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424322#M281007</link>
    <description>&lt;P&gt;Post test data in the form of a datastep, using the code window (its the {i} above post area).&amp;nbsp; Follow this post if you need help:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would imagine the simplest method is to do a quick normalise of your data (wide to long - as a tip for the future, working with normalised data is far easier from a programming point of view - you can still transpose for output):&lt;/P&gt;
&lt;PRE&gt;data have;&lt;BR /&gt; input pnr Var1 $ Var4 $ Var5 $ Var7 $ Var10 $ Var14 $;&lt;BR /&gt;datalines;&lt;BR /&gt;111111 b b b c c b&lt;BR /&gt;111112 e e e e e e&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc transpose data=have out=inter;&lt;BR /&gt; by pnr;&lt;BR /&gt; var var:;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data=inter;&lt;BR /&gt; by pnr col1;&lt;BR /&gt;run; &lt;BR /&gt; &lt;BR /&gt;data inter;&lt;BR /&gt; set inter;&lt;BR /&gt; retain cnt 0;&lt;BR /&gt; by pnr col1;&lt;BR /&gt; cnt=ifn(first.col1,1,cnt+1);&lt;BR /&gt; if last.col1 then output;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc transpose data=inter out=t_inter;&lt;BR /&gt; by pnr;&lt;BR /&gt; var cnt;&lt;BR /&gt; id col1;&lt;BR /&gt; idlabel col1;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt; merge have t_inter;&lt;BR /&gt; by pnr;&lt;BR /&gt;run;&lt;/PRE&gt;
&lt;P&gt;Note that I have gone for a more generic approach, i.e. I have not hardcoded the letters in.&amp;nbsp; If you only want a count of a, then you could hardcode it (by this I mean if the letter z appeared for instance, then you wouldn't get a column z with the count, as its not flexible):&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  a=count(catx(',',of var:),'a');
  b=count(catx(',',of var:),'b');
...
run;&lt;/PRE&gt;
&lt;P&gt;the var: means all variables with prefix of var.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 02 Jan 2018 14:53:32 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2018-01-02T14:53:32Z</dc:date>
    <item>
      <title>counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424319#M281006</link>
      <description>&lt;P&gt;&lt;SPAN&gt;HAVE:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;pnr&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var1&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var4&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var5&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var7&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var10&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var14&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111111&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111112&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111113&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111114&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Want:&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;pnr&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var1&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var4&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var5&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var7&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var10&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;Var14&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111111&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111112&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111113&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;111114&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;There must be a simpel way to do it! Im new in SAS, so please try to think of that, while you make an answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you so much for taking your time to answer this,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using SAS 9.4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Rebekka&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2018 14:22:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424319#M281006</guid>
      <dc:creator>Rebekka</dc:creator>
      <dc:date>2018-01-02T14:22:32Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424322#M281007</link>
      <description>&lt;P&gt;Post test data in the form of a datastep, using the code window (its the {i} above post area).&amp;nbsp; Follow this post if you need help:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would imagine the simplest method is to do a quick normalise of your data (wide to long - as a tip for the future, working with normalised data is far easier from a programming point of view - you can still transpose for output):&lt;/P&gt;
&lt;PRE&gt;data have;&lt;BR /&gt; input pnr Var1 $ Var4 $ Var5 $ Var7 $ Var10 $ Var14 $;&lt;BR /&gt;datalines;&lt;BR /&gt;111111 b b b c c b&lt;BR /&gt;111112 e e e e e e&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc transpose data=have out=inter;&lt;BR /&gt; by pnr;&lt;BR /&gt; var var:;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data=inter;&lt;BR /&gt; by pnr col1;&lt;BR /&gt;run; &lt;BR /&gt; &lt;BR /&gt;data inter;&lt;BR /&gt; set inter;&lt;BR /&gt; retain cnt 0;&lt;BR /&gt; by pnr col1;&lt;BR /&gt; cnt=ifn(first.col1,1,cnt+1);&lt;BR /&gt; if last.col1 then output;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc transpose data=inter out=t_inter;&lt;BR /&gt; by pnr;&lt;BR /&gt; var cnt;&lt;BR /&gt; id col1;&lt;BR /&gt; idlabel col1;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt; merge have t_inter;&lt;BR /&gt; by pnr;&lt;BR /&gt;run;&lt;/PRE&gt;
&lt;P&gt;Note that I have gone for a more generic approach, i.e. I have not hardcoded the letters in.&amp;nbsp; If you only want a count of a, then you could hardcode it (by this I mean if the letter z appeared for instance, then you wouldn't get a column z with the count, as its not flexible):&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  a=count(catx(',',of var:),'a');
  b=count(catx(',',of var:),'b');
...
run;&lt;/PRE&gt;
&lt;P&gt;the var: means all variables with prefix of var.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2018 14:53:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424322#M281007</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-01-02T14:53:32Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424334#M281008</link>
      <description>&lt;P&gt;Are the values of your variables restricted to a known set of values such as literal a, b, c etc. or are they actually not known at the start of the process? And are the values actually character?&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2018 15:36:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424334#M281008</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-01-02T15:36:54Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424337#M281009</link>
      <description>&lt;P&gt;You can use DO loops, two nested ones.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This assumes you know the values ahead of time, but there are ways to get those values either way.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's an example, based of&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/45151"&gt;@RW9&lt;/a&gt;&amp;nbsp;solution. Note that your 'output' for the second row is incorrect, you have 6 E's not 5.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 input pnr Var1 $ Var4 $ Var5 $ Var7 $ Var10 $ Var14 $;
datalines;
111111 b b b c c b
111112 e e e e e e
;
run;

data want;
set have;

array _new(*) a b c d e (5*0);
array _old(*) var1--var14;

do i=1 to dim(_old);

do j=1 to dim(_new);
if vname(_new(j)) = _old(i) then _new(j)+1;
end;
end;

drop i j;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 02 Jan 2018 15:54:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424337#M281009</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-02T15:54:12Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424349#M281010</link>
      <description>The values are characters that are known (they are actuallys numbers from 1&lt;BR /&gt;to 12, but defined as charaters in SAS). I hope that was answer enougth &lt;span class="lia-unicode-emoji" title=":monkey_face:"&gt;🐵&lt;/span&gt;&lt;BR /&gt;Thanks Rebekka&lt;BR /&gt;</description>
      <pubDate>Tue, 02 Jan 2018 16:03:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424349#M281010</guid>
      <dc:creator>Rebekka</dc:creator>
      <dc:date>2018-01-02T16:03:56Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424358#M281011</link>
      <description>&lt;P&gt;data have;&lt;BR /&gt;input pnr Var1 $ Var4 $ Var5 $ Var7 $ Var10 $ Var14 $;&lt;BR /&gt;datalines;&lt;BR /&gt;111111 b b b c c b&lt;BR /&gt;111112 e e e e e e&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;array v(*) var:;&lt;BR /&gt;array _v(*) a b c d e;&lt;BR /&gt;_k=cats(of v(*));&lt;BR /&gt;do _n_=1 to dim(_v);&lt;BR /&gt;_v(_n_) = countc(_k, vname(_v(_n_)));&lt;BR /&gt;end;&lt;BR /&gt;drop _:;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2018 16:26:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424358#M281011</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-02T16:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424369#M281012</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/28402"&gt;@Rebekka&lt;/a&gt; wrote:&lt;BR /&gt;The values are characters that are known (they are actuallys numbers from 1&lt;BR /&gt;to 12, but defined as charaters in SAS). I hope that was answer enougth &lt;span class="lia-unicode-emoji" title=":monkey_face:"&gt;🐵&lt;/span&gt;&lt;BR /&gt;Thanks Rebekka&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Since digits alone are not valid variable names do you want the resulting variable names to be _1 _2 ... _12, start with&amp;nbsp;something other&amp;nbsp;than _ or require the cumbersome the '1'n or "2"n name literal constructs? Large economy sized hint: Name literals can lead to a number of issues maintaining code. And if you want the&amp;nbsp;variable&amp;nbsp;names to sort&amp;nbsp;in order you might really want 01 instead of 1 such as NewV01 to NewV12.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2018 16:45:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424369#M281012</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-01-02T16:45:23Z</dc:date>
    </item>
    <item>
      <title>Re: counting unic valuee in a row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424568#M281013</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 input pnr Var1 $ Var4 $ Var5 $ Var7 $ Var10 $ Var14 $;
datalines;
111111 b b b c c b
111112 e e e e e e
;
run;
proc iml;
use have(keep=var:);
read all var _ALL_ into x;
close;
call tabulate(level,freq,x);
level=t(level);
create level var{level};
append;
close;
quit;
proc sql noprint;
select level into : list separated by ' ' from level;
quit;
data want;
 set have;
 array x{*} &amp;amp;list;
 array y{*} $ var: ;
 do k=1 to dim(x);
   x{k}=0;
 end;
 do i=1 to dim(y);
  do j=1 to dim(x);
   if upcase(y{i})=upcase(vname(x{j})) then do;x{j}=x{j}+1;leave;end;
  end;
 end;
drop i j k;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 03 Jan 2018 14:25:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/counting-unic-valuee-in-a-row/m-p/424568#M281013</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-01-03T14:25:16Z</dc:date>
    </item>
  </channel>
</rss>

