<?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: Creating categorical variables using multiple columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683982#M207211</link>
    <description>&lt;P&gt;Try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data temp_recode1;
set SAS_Test;
sum = sum(drug1, drug2, drug3);
if sum = 0 then drugtypes = 0;
else if sum &amp;gt; 1 then drugtypes = 4;
else if drug1 = 1 then drugtypes = 1;
else if drug2 = 1 then drugtypes = 2;
else if drug3 = 1 then drugtypes = 3;
else drugtypes = .;
drop sum;
run;&lt;BR /&gt;&lt;BR /&gt;proc freq data=temp_recode1;&lt;BR /&gt;tables drug1*drugtypes drug2*drugtypes drug3*drugtypes / nocol norow nopercent;&lt;BR /&gt;run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 15 Sep 2020 15:34:32 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2020-09-15T15:34:32Z</dc:date>
    <item>
      <title>Creating categorical variables using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683978#M207208</link>
      <description>&lt;P&gt;Hi There,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to create a categorical variable for drug type that consists of the following categories:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;* drug type 1 only&lt;/P&gt;
&lt;P&gt;* drug type 2 only&lt;/P&gt;
&lt;P&gt;* drug type 3 only&lt;/P&gt;
&lt;P&gt;* multiple drugs&lt;/P&gt;
&lt;P&gt;* none&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried using the follow SAS code but am experiencing difficulties:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data SAS_Test;
input drug1 drug2 drug3;
datalines;
1	1	1
1	0	1
0	0	0
1	0	0
1	0	1
1	1	0
0	0	1
0	1	1
1	1	0
1	0	0
0	1	0
0	0	1
;
run;

data temp_recode1;
set SAS_Test;
if drug1 = 1 then drugtypes = 1;
else if drug2 = 1 then drugtypes = 2;
else if drug3 = 1 then drugtypes = 3;
else if drug1 = 1 and drug2 = 1 then drugtypes = 4;
else if drug1 = 1 and drug3 = 1 then drugtypes = 4;
else if drug2 = 1 and drug3 = 1 then drugtypes = 4;
else drugtypes = 5;
run;

proc freq data=temp_recode1;
tables drug1 drug2 drug3 drugtypes;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2020 15:14:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683978#M207208</guid>
      <dc:creator>advmsj</dc:creator>
      <dc:date>2020-09-15T15:14:36Z</dc:date>
    </item>
    <item>
      <title>Re: Creating categorical variables using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683982#M207211</link>
      <description>&lt;P&gt;Try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data temp_recode1;
set SAS_Test;
sum = sum(drug1, drug2, drug3);
if sum = 0 then drugtypes = 0;
else if sum &amp;gt; 1 then drugtypes = 4;
else if drug1 = 1 then drugtypes = 1;
else if drug2 = 1 then drugtypes = 2;
else if drug3 = 1 then drugtypes = 3;
else drugtypes = .;
drop sum;
run;&lt;BR /&gt;&lt;BR /&gt;proc freq data=temp_recode1;&lt;BR /&gt;tables drug1*drugtypes drug2*drugtypes drug3*drugtypes / nocol norow nopercent;&lt;BR /&gt;run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 15 Sep 2020 15:34:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683982#M207211</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2020-09-15T15:34:32Z</dc:date>
    </item>
    <item>
      <title>Re: Creating categorical variables using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683983#M207212</link>
      <description>&lt;P&gt;Maybe you are having difficulties because there are some cases that overlap like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="sas"&gt;if drug1 = 1&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;and&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;else if drug1 = 1 and drug2 = 1&lt;/CODE&gt;&lt;/PRE&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;To avoid this you can use the following code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data temp_recode1;
set SAS_Test;
if sum(drug1,drug2,drug3)=1 then do;
	if drug1 = 1 then drugtypes = 1;
	else if drug2 = 1 then drugtypes = 2;
	else if drug3 = 1 then drugtypes = 3;
 end;

 else if sum(drug1,drug2,drug3)=2 then drugtypes=4;

 else if sum(drug1,drug2,drug3)=3 then drugtypes=5;

 else drugtypes=0; /*when all the drug variables are 0*/

 run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you have no drugs, drugtypes will be 5, its this a desirable outcome? if so change the value in the else statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2020 15:39:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683983#M207212</guid>
      <dc:creator>Angel_Larrion</dc:creator>
      <dc:date>2020-09-15T15:39:59Z</dc:date>
    </item>
    <item>
      <title>Re: Creating categorical variables using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683987#M207216</link>
      <description>&lt;P&gt;And&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="sas"&gt;if sum(drug1,drug2,drug3)=1 then do;
	if drug1 = 1 then drugtypes = 1;
	else if drug2 = 1 then drugtypes = 2;
	else if drug3 = 1 then drugtypes = 3;
 end;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;could be replaced with&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;if sum(drug1,drug2,drug3)=1 then drugtypes= whichn(1,drug1,drug2,drug3);
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Whichn, and the companion Whichc for character variables, returns&amp;nbsp; the order number of the first variable/value that is equal to the first value parameter. Consider if you had 10 drug variables, that would be a fair number of IF/Then/Else but the difference with whichn would be to just add the variables to list.&lt;/P&gt;
&lt;P&gt;Plus if the variables are in an Array you can use Whichn(&amp;lt;value&amp;gt;, of arrayname(*)) which makes this even shorter for long lists of variables.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2020 15:47:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-categorical-variables-using-multiple-columns/m-p/683987#M207216</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-09-15T15:47:17Z</dc:date>
    </item>
  </channel>
</rss>

