<?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: How to count in multiple columns with Proc Freq in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225047#M40395</link>
    <description>&lt;P&gt;Hi, sugestion for renaming the variables in my previous post (insert just after PROC TRANSPOSE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;data y;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;set y;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;if length(instr) eq 4 then instr = catt('ins0',char(instr,4));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That would convert INS1 to INS01, INS2 to INS02, etc. and the table columns would be in variable number order.&lt;/P&gt;</description>
    <pubDate>Thu, 10 Sep 2015 21:54:56 GMT</pubDate>
    <dc:creator>MikeZdeb</dc:creator>
    <dc:date>2015-09-10T21:54:56Z</dc:date>
    <item>
      <title>How to count in multiple columns with Proc Freq</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/206860#M38457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Hi, I am using SAS EG 5.1 at work. I have a data base like below, with 14 columns. 1st column is unique IDs , and the rest are Instructions, which are in form of codes (numbers between 0 - 200) . Is there a way I can calculate the frequency of occurrence of a specific code value (for eg 30) in the whole instruction 1 : instruction 13 grid collectively. I have tried Proc freq, but that gives me tables for single columns separately. &lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;I have previously done this in excel using the countif (range, criteria) code where I have set the range to the whole grid, and criteria as the value of the specific code.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Is there a SAS EG/BASE equivalent to the above function , where I can find the collective frequency of a specific number in a range of columns. &lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;ID&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;instruction 1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction 3&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction 4&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction 1&lt;/STRONG&gt;0&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;TABLE border="1" class="jiveBorder" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction 11&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;TABLE border="1" class="jiveBorder" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction 12&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;TABLE border="1" class="jiveBorder" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#575757&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;transparent&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG style="color: #ffffff; font-size: 13.3333330154419px; text-align: center;"&gt;instruction 13&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Thank you for the help &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Jun 2015 02:17:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/206860#M38457</guid>
      <dc:creator>muchkin</dc:creator>
      <dc:date>2015-06-16T02:17:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to count in multiple columns with Proc Freq</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225029#M40392</link>
      <description>&lt;P&gt;Give this a try. It does not use PROC FREQ, but I believe this technique performs more efficiently than using multiple PROC FREQs.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;PRE&gt;/* stack the output first and get counts for each column */
PROC SQL;
  CREATE TABLE instruction_merged AS 
  SELECT           instruction_1  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_1
  UNION ALL SELECT instruction_2  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_2
  UNION ALL SELECT instruction_3  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_3
  UNION ALL SELECT instruction_4  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_4
  UNION ALL SELECT instruction_5  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_5
  UNION ALL SELECT instruction_6  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_6
  UNION ALL SELECT instruction_7  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_7
  UNION ALL SELECT instruction_8  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_8
  UNION ALL SELECT instruction_9  AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_9
  UNION ALL SELECT instruction_10 AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_10
  UNION ALL SELECT instruction_11 AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_11
  UNION ALL SELECT instruction_12 AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_12
  UNION ALL SELECT instruction_13 AS instruction_code, COUNT(id) AS group_frequency 
  FROM work.your_dataset GROUP BY instruction_13;
QUIT;
 
 
/* get sum of sums */
PROC SQL;
  CREATE TABLE instruction_counts AS 
  SELECT instruction_code, SUM(group_frequency) AS total_frequency
  FROM instruction_merged
  GROUP BY instruction_code
  ORDER BY instruction_code;
QUIT;
&lt;/PRE&gt;</description>
      <pubDate>Thu, 10 Sep 2015 20:29:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225029#M40392</guid>
      <dc:creator>hbi</dc:creator>
      <dc:date>2015-09-10T20:29:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to count in multiple columns with Proc Freq</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225041#M40393</link>
      <description>&lt;P&gt;Hi. &amp;nbsp;If you don't mind&amp;nbsp;creating another data set, you could transpose your data prior to PROC FREQ ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;* create some data, 100 observations, 14 variables (an ID plus 13 instructions)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;data x;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;array ins(13);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;do id=1 to 100;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;do j=1 to 13;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;ins(j) = int(200*ranuni(1234));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;output;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;keep i: ;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;* create a new data set with only two variables, INSTR (instructions 1 to 13) and COL1 (value of instructions 1 to 13);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;proc transpose data=x out=y (drop=id) name=instr ;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;var ins1-ins13;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;by id;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;* use PROC FREQ on the new data set;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;proc freq data=y;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;table col1*instr / norow nocol nopercent;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hopefully you won't mind&amp;nbsp;that instructions 1 and then 10 through 13 appear in the first 5 columns. &amp;nbsp;If it's an issue, you could always change the values of variable INSTR in data set Y (make INSTR1 -&amp;gt; INSTR01, INSTR2 -&amp;gt; INSTR02, etc.).&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2015 21:32:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225041#M40393</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2015-09-10T21:32:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to count in multiple columns with Proc Freq</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225044#M40394</link>
      <description>&lt;P&gt;Same method as above, but using EG Tasks:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In EG use the&amp;nbsp;Transpose Task to flip the table &amp;nbsp;so that you have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID Instruction Value&lt;/P&gt;&lt;P&gt;1 1 1&lt;/P&gt;&lt;P&gt;1 2 23&lt;/P&gt;&lt;P&gt;1 3 23&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Use One Way Freq Task on the resulting table&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2015 21:43:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225044#M40394</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-09-10T21:43:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to count in multiple columns with Proc Freq</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225047#M40395</link>
      <description>&lt;P&gt;Hi, sugestion for renaming the variables in my previous post (insert just after PROC TRANSPOSE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;data y;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;set y;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;if length(instr) eq 4 then instr = catt('ins0',char(instr,4));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That would convert INS1 to INS01, INS2 to INS02, etc. and the table columns would be in variable number order.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2015 21:54:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-count-in-multiple-columns-with-Proc-Freq/m-p/225047#M40395</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2015-09-10T21:54:56Z</dc:date>
    </item>
  </channel>
</rss>

