<?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: Count distinct values by subjects in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472644#M71007</link>
    <description>&lt;P&gt;Thank you so much for your reply! Actually I have about 150 variables and about 50 of them have Yes/No and rest of them with Name, date, and demographic information. Is it anyway that I don't have to list all 50 variables out? Thanks again!!&lt;/P&gt;</description>
    <pubDate>Fri, 22 Jun 2018 23:37:32 GMT</pubDate>
    <dc:creator>Joshua017</dc:creator>
    <dc:date>2018-06-22T23:37:32Z</dc:date>
    <item>
      <title>Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472639#M71004</link>
      <description>&lt;P&gt;I want to create a variable that can count how many "Yes" for each person/record. Is there a better way to do it? My data set actually have more than 3000 records......&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you so much!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;Q1&lt;/TD&gt;&lt;TD&gt;Q2&lt;/TD&gt;&lt;TD&gt;Q3&lt;/TD&gt;&lt;TD&gt;Q4&lt;/TD&gt;&lt;TD&gt;Q5&lt;/TD&gt;&lt;TD&gt;Yes_count&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Danny&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Mary&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Lisa&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;Mike&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;Philip&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;Sui&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;Zack&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;Pam&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;William&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;No&lt;/TD&gt;&lt;TD&gt;Yes&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Fri, 22 Jun 2018 23:05:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472639#M71004</guid>
      <dc:creator>Joshua017</dc:creator>
      <dc:date>2018-06-22T23:05:56Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472641#M71005</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input obs (Name 	Q1	Q2	Q3	Q4	Q5) ($)	;
cards;
1	Danny	Yes	Yes	No	No	No	 
2	Mary	Yes	No	Yes	Yes	Yes	 
3	John	Yes	Yes	Yes	Yes	No	 
4	Lisa	No	Yes	Yes	Yes	Yes	 
5	Mike	No	Yes	No	No	Yes	 
6	Philip	Yes	Yes	Yes	Yes	No	 
7	Sui	Yes	Yes	No	No	Yes	 
8	Zack	No	Yes	No	Yes	No	 
9	Pam	Yes	Yes	No	No	Yes	 
10	William	No	No	Yes	No	Yes	 
;
data want;
set have;
yes_count=count(cats(of q:),'Yes');
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 22 Jun 2018 23:14:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472641#M71005</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-06-22T23:14:08Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472642#M71006</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/217235"&gt;@Joshua017&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I want to create a variable that can count how many "Yes" for each person/record. Is there a better way to do it? My data set actually have more than 3000 records......&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you so much!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Name&lt;/TD&gt;
&lt;TD&gt;Q1&lt;/TD&gt;
&lt;TD&gt;Q2&lt;/TD&gt;
&lt;TD&gt;Q3&lt;/TD&gt;
&lt;TD&gt;Q4&lt;/TD&gt;
&lt;TD&gt;Q5&lt;/TD&gt;
&lt;TD&gt;Yes_count&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Danny&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Mary&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;Lisa&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;Mike&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;Philip&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;Sui&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;Zack&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;Pam&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;William&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;No&lt;/TD&gt;
&lt;TD&gt;Yes&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;One thing is that coding with character values for Yes/No is ugly at best and cumbersome and confusing at worst.&lt;/P&gt;
&lt;PRE&gt;data want;
   set have;
   array qs q: ; /* assumes all the variables you want that are coded Yes/no
                 are named starting with Q and that the variables that start with 
                 Q are coded yes/no if not list them out*/
   do i= 1 dim(qs);
      yes_count= sum(yes_count, (qs[i]='Yes'));
   end;
run;&lt;/PRE&gt;
&lt;P&gt;The (qs[I]='Yes') takes advantage of the SAS behavior that a true comparison will return a numeric 1 and false a 0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the variables had been coded 1/0 for yes/no to begin with:&lt;/P&gt;
&lt;P&gt;yes_count= sum(of q1-q5); (or however many are involved)&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jun 2018 23:18:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472642#M71006</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-06-22T23:18:57Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472644#M71007</link>
      <description>&lt;P&gt;Thank you so much for your reply! Actually I have about 150 variables and about 50 of them have Yes/No and rest of them with Name, date, and demographic information. Is it anyway that I don't have to list all 50 variables out? Thanks again!!&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jun 2018 23:37:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472644#M71007</guid>
      <dc:creator>Joshua017</dc:creator>
      <dc:date>2018-06-22T23:37:32Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472645#M71008</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/217235"&gt;@Joshua017&lt;/a&gt;&amp;nbsp; You can use variable lists like i showed in my code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or group the 50 in an array q:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;array qs q1-q50 ; &lt;/PRE&gt;&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;yes_count&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;count&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;cats&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;of qs(*)&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'Yes'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Are you able to follow both of these solutions?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jun 2018 23:41:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472645#M71008</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-06-22T23:41:52Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472700#M71009</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/217235"&gt;@Joshua017&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have about 150 variables and about 50 of them have Yes/No and rest of them with Name, date, and demographic information. Is it anyway that I don't have to list all 50 variables out? Thanks again!!&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Chances are very good that you can abbreviate the list by using one or another type (or even combining different types) of &lt;A href="http://documentation.sas.com/?docsetId=lrcon&amp;amp;docsetTarget=p0wphcpsfgx6o7n1sjtqzizp1n39.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en" target="_blank"&gt;SAS variable lists&lt;/A&gt;, as &lt;STRONG&gt;novinosrin&lt;/STRONG&gt; mentioned already. If your Yes/No variables do not have a common name prefix, &lt;A href="http://documentation.sas.com/?docsetId=lrcon&amp;amp;docsetTarget=p0wphcpsfgx6o7n1sjtqzizp1n39.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en#p1cr0027z6qx4an1maoh0fyizqtt" target="_blank"&gt;name range lists&lt;/A&gt;&amp;nbsp;can be particularly useful. Just apply PROC CONTENTS with option VARNUM to your dataset and see if the (I assume: character) variables in question form one or a few blocks of consecutive rows in the output (possibly interrupted by numeric variables).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example (focusing&amp;nbsp;on&amp;nbsp;&lt;EM&gt;numeric&lt;/EM&gt; variables, though):&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc contents data=sashelp.heart varnum;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Output (highlighting added):&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="proc_contents_varnum.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/21346i62F1C5400BE5A431/image-size/medium?v=v2&amp;amp;px=400" role="button" title="proc_contents_varnum.png" alt="proc_contents_varnum.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Result: The eight numeric variables highlighted above can be referred to as&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;&lt;FONT face="courier new,courier"&gt;AgeCHDdiag-numeric-Weight MRW--Cholesterol&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;where appropriate.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Similarly,&amp;nbsp;&lt;FONT face="courier new,courier" size="3"&gt;Chol_Status--Weight_Status&lt;/FONT&gt; (3 variables) or&amp;nbsp;&lt;FONT face="courier new,courier" size="3"&gt;DeathCause-character-BP_Status&lt;/FONT&gt;&amp;nbsp;(4 variables) are valid lists of character variables -- at least as long as the structure (variable order) of the dataset is not changed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 23 Jun 2018 13:25:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/472700#M71009</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2018-06-23T13:25:19Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/474243#M71078</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sas.jpg" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/21492iE575881758634D12/image-size/large?v=v2&amp;amp;px=999" role="button" title="sas.jpg" alt="sas.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;That's part of the dataset. For variables start with Q, some of them are Yes/No. I want to count how many Yes for each record. How could I put them in a array or I can just count all variables with "Yes"?&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jun 2018 20:22:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/474243#M71078</guid>
      <dc:creator>Joshua017</dc:creator>
      <dc:date>2018-06-28T20:22:15Z</dc:date>
    </item>
    <item>
      <title>Re: Count distinct values by subjects</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/474390#M71088</link>
      <description>&lt;P&gt;Okay, it seems that the Yes/No variables might be too sparse to select them conveniently using name range lists. But perhaps they can be characterized as the "Char 3" variables in the dataset? If so, the following approach should work:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
select name into :ynvars separated by ' '
from dictionary.columns
where libname='WORK' &amp;amp; memname='HAVE' &amp;amp; type='char' &amp;amp; length=3;
quit;

data want;
set have;
array qs &amp;amp;ynvars;
yes_count=count(catx('01'x, of qs[*]), 'Yes');
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The PROC SQL step selects the names of the "Char 3" variables from metadata and stores them as a blank-separated list in macro variable YNVARS, which is then used in the array definition of the subsequent data step. (Of course, you'll have to replace "WORK" and "HAVE" by your libname and memname.) Obviously, other character variables with length 3, but different contents (e.g. STATE with values 'TX', 'NC' etc.) wouldn't be a problem for the 'Yes' count. I've made the count a bit more robust by using CATX with a "rare" delimiter (in place of CATS, which could "create" a 'Yes' by concatenating something like 'NY' and 'est').&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;EDIT: To exclude unwanted "Char 3" variables whose names don't start with "Q", you can extend the WHERE condition:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;where libname='WORK' &amp;amp; memname='HAVE' &amp;amp; type='char' &amp;amp; length=3 &amp;amp; name eqt 'Q';&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 29 Jun 2018 09:43:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Count-distinct-values-by-subjects/m-p/474390#M71088</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2018-06-29T09:43:52Z</dc:date>
    </item>
  </channel>
</rss>

