<?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: Adding Frequencies in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478514#M286363</link>
    <description>&lt;P&gt;Assuming you only have three more variables and the count is the same:&lt;/P&gt;
&lt;P&gt;If count is not the same, create an array for those variables and assign it as well in the top most loop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input @1 Stenosis $9.  @10  Frequency  ;
Stenosis2 = Stenosis;
Stenosis3 = Stenosis;
cards; 
1        70 
1,2      12 
1,3      8 
2,4,5    15
4,5      16
5        7
;;;;
run;

data expanded;
set have;

    array _sten(*) stenosis1-stenosis3;

    do j=1 to 3;
        stenosis=_sten(j);
        *count the number of words in the string;
        n_words = countw(stenosis);

        *create a record for each word;
        do i=1 to n_words;
            Word = scan(stenosis, i, ','); *extracts the word of interest;
            output; *outputs to data set;
        end;
    end;
    keep stenosis word frequency n_words; *keep only these variables in final data set;
run;

proc freq data=expanded;
table word;
weight frequency;
run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 16 Jul 2018 22:50:44 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2018-07-16T22:50:44Z</dc:date>
    <item>
      <title>Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478490#M286357</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did a proc freq on a large data set and the output looked similar to this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Stenosis&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Frequency&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;70&amp;nbsp;&lt;/P&gt;&lt;P&gt;1,2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12&amp;nbsp;&lt;/P&gt;&lt;P&gt;1,3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&amp;nbsp;&lt;/P&gt;&lt;P&gt;2,4,5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;15&lt;/P&gt;&lt;P&gt;4,5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 16&lt;/P&gt;&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Stenosis variable has 5 options and respondents can choose multiple answers.&lt;/P&gt;&lt;P&gt;How do I add the total number of respondents who chose "1", "2", etc. using SAS?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My&amp;nbsp;output should look like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Stenosis&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Frequency&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;90&amp;nbsp;&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;27&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;/P&gt;&lt;P&gt;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;31&lt;/P&gt;&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;38&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance for your responses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 21:07:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478490#M286357</guid>
      <dc:creator>yoyong</dc:creator>
      <dc:date>2018-07-16T21:07:33Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478494#M286358</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Stenosis   $                Frequency     ;
cards4;
1                                     70 
1,2                                  12 
1,3                                    8 
2,4,5                               15
4,5                                  16
5                                       7
;;;;
data temp;
set have end=last;
do _n_=1 to countw(Stenosis,',');
_k=scan(Stenosis,_n_,',');
output;
end;
run;
proc sql;
create table want as
select _k as Stenosis,sum(Frequency) as freq
from temp
group by _k;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 16 Jul 2018 21:40:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478494#M286358</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-07-16T21:40:53Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478496#M286359</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/221360"&gt;@yoyong&lt;/a&gt;&amp;nbsp;If you want a one step solution using hashes, very much possible. If you really want that, let us know. But I do think syntactically and logically the above is very easy to handle&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 21:42:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478496#M286359</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-07-16T21:42:31Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478497#M286360</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Separate your raw data and then run a PROC FREQ on it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can do that using SCAN() and COUNTW().&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input @1 Stenosis $9.  @10  Frequency  ;
cards; 
1        70 
1,2      12 
1,3      8 
2,4,5    15
4,5      16
5        7
;;;;
run;

data expanded;
set have;
    *count the number of words in the string;
    n_words = countw(stenosis);

    *create a record for each word;
    do i=1 to n_words;
        Word = scan(stenosis, i, ','); *extracts the word of interest;
        output; *outputs to data set;
    end;
    keep stenosis word frequency n_words; *keep only these variables in final data set;
run;

proc freq data=expanded;
table word;
weight frequency;
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/221360"&gt;@yoyong&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I did a proc freq on a large data set and the output looked similar to this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Stenosis&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Frequency&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;70&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1,2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1,3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2,4,5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;15&lt;/P&gt;
&lt;P&gt;4,5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 16&lt;/P&gt;
&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Stenosis variable has 5 options and respondents can choose multiple answers.&lt;/P&gt;
&lt;P&gt;How do I add the total number of respondents who chose "1", "2", etc. using SAS?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My&amp;nbsp;output should look like&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Stenosis&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Frequency&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;90&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;27&lt;/P&gt;
&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;/P&gt;
&lt;P&gt;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;31&lt;/P&gt;
&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;38&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance for your responses.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 21:44:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478497#M286360</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-16T21:44:10Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478507#M286361</link>
      <description>Thank you very much for your help.&lt;BR /&gt;&lt;BR /&gt;I have another question.&lt;BR /&gt;&lt;BR /&gt;If I have STENOSIS1, STENOSIS2 and STENOSIS3, how do I get the total frequency for each category across the three variables?</description>
      <pubDate>Mon, 16 Jul 2018 22:26:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478507#M286361</guid>
      <dc:creator>yoyong</dc:creator>
      <dc:date>2018-07-16T22:26:07Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478511#M286362</link>
      <description>&lt;P&gt;You need to restructure your data then so you have a single entry. A quick way is to use PROC TRANSPOSE to reformat the data so it has a single entry.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And if you have multiple values does the weighting/frequency structure change? Do you have different weights/frequency for each variable?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/221360"&gt;@yoyong&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;Thank you very much for your help.&lt;BR /&gt;&lt;BR /&gt;I have another question.&lt;BR /&gt;&lt;BR /&gt;If I have STENOSIS1, STENOSIS2 and STENOSIS3, how do I get the total frequency for each category across the three variables?&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jul 2018 22:45:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478511#M286362</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-16T22:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: Adding Frequencies</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478514#M286363</link>
      <description>&lt;P&gt;Assuming you only have three more variables and the count is the same:&lt;/P&gt;
&lt;P&gt;If count is not the same, create an array for those variables and assign it as well in the top most loop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input @1 Stenosis $9.  @10  Frequency  ;
Stenosis2 = Stenosis;
Stenosis3 = Stenosis;
cards; 
1        70 
1,2      12 
1,3      8 
2,4,5    15
4,5      16
5        7
;;;;
run;

data expanded;
set have;

    array _sten(*) stenosis1-stenosis3;

    do j=1 to 3;
        stenosis=_sten(j);
        *count the number of words in the string;
        n_words = countw(stenosis);

        *create a record for each word;
        do i=1 to n_words;
            Word = scan(stenosis, i, ','); *extracts the word of interest;
            output; *outputs to data set;
        end;
    end;
    keep stenosis word frequency n_words; *keep only these variables in final data set;
run;

proc freq data=expanded;
table word;
weight frequency;
run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 16 Jul 2018 22:50:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-Frequencies/m-p/478514#M286363</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-16T22:50:44Z</dc:date>
    </item>
  </channel>
</rss>

