<?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 combining multiple columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705769#M216555</link>
    <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the following dataset:&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;race1&lt;/TD&gt;&lt;TD&gt;race2&lt;/TD&gt;&lt;TD&gt;race3&lt;/TD&gt;&lt;TD&gt;race4&lt;/TD&gt;&lt;TD&gt;race_sum&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I would like to do is that:&lt;/P&gt;&lt;P&gt;if race_sum &amp;gt;1 then it should final_race = 'Multiple race'&lt;/P&gt;&lt;P&gt;if race_sum = 1 then it should be the original race variable&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;something like this:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;race1&lt;/TD&gt;&lt;TD&gt;race2&lt;/TD&gt;&lt;TD&gt;race3&lt;/TD&gt;&lt;TD&gt;race4&lt;/TD&gt;&lt;TD&gt;race_sum&lt;/TD&gt;&lt;TD&gt;final_race&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Multiple Race&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;race2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;race4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;race1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;set test;&lt;/P&gt;&lt;P&gt;if race_sum &amp;gt; 1 then final_race = 'Multiple Race'&lt;/P&gt;&lt;P&gt;if race_sum = 1 then final_race =??&amp;nbsp;&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not sure how to do the later part&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!!&lt;/P&gt;</description>
    <pubDate>Mon, 14 Dec 2020 16:49:53 GMT</pubDate>
    <dc:creator>pacman94</dc:creator>
    <dc:date>2020-12-14T16:49:53Z</dc:date>
    <item>
      <title>combining multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705769#M216555</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the following dataset:&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;race1&lt;/TD&gt;&lt;TD&gt;race2&lt;/TD&gt;&lt;TD&gt;race3&lt;/TD&gt;&lt;TD&gt;race4&lt;/TD&gt;&lt;TD&gt;race_sum&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I would like to do is that:&lt;/P&gt;&lt;P&gt;if race_sum &amp;gt;1 then it should final_race = 'Multiple race'&lt;/P&gt;&lt;P&gt;if race_sum = 1 then it should be the original race variable&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;something like this:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;race1&lt;/TD&gt;&lt;TD&gt;race2&lt;/TD&gt;&lt;TD&gt;race3&lt;/TD&gt;&lt;TD&gt;race4&lt;/TD&gt;&lt;TD&gt;race_sum&lt;/TD&gt;&lt;TD&gt;final_race&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Multiple Race&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;race2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;race4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;race1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;set test;&lt;/P&gt;&lt;P&gt;if race_sum &amp;gt; 1 then final_race = 'Multiple Race'&lt;/P&gt;&lt;P&gt;if race_sum = 1 then final_race =??&amp;nbsp;&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not sure how to do the later part&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!!&lt;/P&gt;</description>
      <pubDate>Mon, 14 Dec 2020 16:49:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705769#M216555</guid>
      <dc:creator>pacman94</dc:creator>
      <dc:date>2020-12-14T16:49:53Z</dc:date>
    </item>
    <item>
      <title>Re: combining multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705776#M216558</link>
      <description>&lt;P&gt;Functions you need:&lt;/P&gt;
&lt;P&gt;WHICHN - returns the index of the 1&lt;/P&gt;
&lt;P&gt;VNAME - returns the variable name for a variable at a specified index&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nesting them together gets you what you need.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Concepts need: Arrays&lt;/P&gt;
&lt;P&gt;&lt;A href="https://stats.idre.ucla.edu/sas/seminars/sas-arrays/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/seminars/sas-arrays/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Untested:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
set have;

array _race(*) race1-race4;

if race_sum &amp;gt; 1 then final_race = "Multiple Race";
else final_race = vname(_race(whichn(1, of _race(*))));

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;FYI - programming using the following style is dangerous and not recommended. It destroys your input data so you need to run your code again from the prior step at minimum and makes it significantly harder to debug your code.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
set test;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/360798"&gt;@pacman94&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have the following dataset:&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;race1&lt;/TD&gt;
&lt;TD&gt;race2&lt;/TD&gt;
&lt;TD&gt;race3&lt;/TD&gt;
&lt;TD&gt;race4&lt;/TD&gt;
&lt;TD&gt;race_sum&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What I would like to do is that:&lt;/P&gt;
&lt;P&gt;if race_sum &amp;gt;1 then it should final_race = 'Multiple race'&lt;/P&gt;
&lt;P&gt;if race_sum = 1 then it should be the original race variable&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;something like this:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;race1&lt;/TD&gt;
&lt;TD&gt;race2&lt;/TD&gt;
&lt;TD&gt;race3&lt;/TD&gt;
&lt;TD&gt;race4&lt;/TD&gt;
&lt;TD&gt;race_sum&lt;/TD&gt;
&lt;TD&gt;final_race&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Multiple Race&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;race2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;race4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;race1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data test;&lt;/P&gt;
&lt;P&gt;set test;&lt;/P&gt;
&lt;P&gt;if race_sum &amp;gt; 1 then final_race = 'Multiple Race'&lt;/P&gt;
&lt;P&gt;if race_sum = 1 then final_race =??&amp;nbsp;&lt;/P&gt;
&lt;P&gt;;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am not sure how to do the later part&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks!!&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Dec 2020 17:09:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705776#M216558</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-12-14T17:09:31Z</dc:date>
    </item>
    <item>
      <title>Re: combining multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705779#M216559</link>
      <description>&lt;P&gt;Fully tested:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	infile cards dlm='09'x;
	input ID Caucasian AfricanAmerican EastAsian SouthEastAsian;
	label AfricanAmerican='African American' EastAsian="East Asian" 
		SOuthEastAsian="Southeast Asian";
	cards;
1	1	0	1	0	
2	0	1	0	0
3	0	0	0	1
4	1	0	0	0
;
	;
	;;
run;

data want;
	set have;
	length list_race_label list_race_name $200.;
	array _race(*) Caucasian--SouthEastAsian;
	
	race_sum=sum(of _race(*));

	if race_sum &amp;gt; 1 then
		final_race="Multiple Race";
	else
		final_race=vname(_race(whichn(1, of _race(*))));
	*list of race;

	do i=1 to dim(_race);

		if _race(i)=1 then
			list_race_label=catx(", ", trim(list_race_label), vlabel(_race(i)));

		if _race(i)=1 then
			list_race_name=catx(", ", trim(list_race_label), vname(_race(i)));
	end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;A href="https://gist.github.com/statgeek/972120a19b583acc3a947b58b3177a41" target="_blank" rel="noopener"&gt;https://gist.github.com/statgeek/972120a19b583acc3a947b58b3177a41&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Dec 2020 17:22:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705779#M216559</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-12-14T17:22:44Z</dc:date>
    </item>
    <item>
      <title>Re: combining multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705784#M216561</link>
      <description>I'm pretty new at this but I think this will work...&lt;BR /&gt;&lt;BR /&gt;Else if race1= 1 then final_race= 'race1'&lt;BR /&gt;Else if race2= 1 then final_race= 'race2'&lt;BR /&gt;Else if race3= 1 then final_race= 'race3'&lt;BR /&gt;Else if race4= 1 then final_race= 'race4';</description>
      <pubDate>Mon, 14 Dec 2020 17:38:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705784#M216561</guid>
      <dc:creator>taylormccormick</dc:creator>
      <dc:date>2020-12-14T17:38:15Z</dc:date>
    </item>
    <item>
      <title>Re: combining multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705794#M216563</link>
      <description>&lt;P&gt;90% plus of requests when I get to process similar data the user would like the "race" responses in some specific order.&lt;/P&gt;
&lt;P&gt;The easiest way I have found to do that consistently is to assign a numeric value to the "final race" variable and an associated format that displays the text in the desired order.&lt;/P&gt;
&lt;P&gt;So I would start with creating the Format first such as:&lt;/P&gt;
&lt;PRE&gt;Proc format;
value raceorder
1 = "Asian"
2 = "Black"
3 = "Native American"
4 = "White"
5 = "Multiple Race"
6 = "Unknown"
;
run;

&lt;/PRE&gt;
&lt;P&gt;And then use the Sum/ whichn information to assign the above numeric values.&lt;/P&gt;
&lt;P&gt;My example includes Unknown category because I get too much garbage and always have some in most of my data. That would be the sum of races le 0. (less than in case your system has MISSING values) or Whichn result of 0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example of creating data with "race" variables not in the possibly desired report order and making the final race variable match a report order as defined in that format above.&lt;/P&gt;
&lt;PRE&gt;data have;
input ID 	race1 	race2 	race3 	race4 ;
label 
   Race1 = 'White'
   Race2 = 'Black'
   Race3 = 'Asian'
   Race4 = 'Native American'
;
datalines;
1 	1 	0 	1 	0 	
2 	0 	1 	0 	0 	
3 	0 	0 	0 	1 	
4 	1 	0 	0 	0 	
5  0  0  1  0
6  0  0  0  0 
;
data want;
   set have;
   array r race: ;
   if sum(of r(*))=2 then final_race=5;
   else select (whichn(1, of r(*)));
      when (1) final_race =4;
      when (2) final_race =2;
      when (3) final_race =1;
      when (4) final_race =3;
      otherwise final_race=6;
   end;
run;

proc freq data=want;
   tables final_race;
   format final_race raceorder.;
run;&lt;/PRE&gt;
&lt;P&gt;I use an explicit value for the "Unknown" or missing or what ever your system may want because if you use an actual missing value then the sort order place the "Unknown" first.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Style choices abound in variations of this.&lt;/P&gt;
&lt;P&gt;The format approach can become extremely powerful if you get to work with one of the data sets that has subgroups of Asian (one I have seen has something like 24) or Hispanic split up into geographic sub groups. Then Multilabel formats could provide the way to do subgroup/main "race" categories.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Dec 2020 17:58:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/combining-multiple-columns/m-p/705794#M216563</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-12-14T17:58:30Z</dc:date>
    </item>
  </channel>
</rss>

