<?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: use array to recode multiple unordered columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455700#M115332</link>
    <description>&lt;P&gt;Why does record 2, get SP=1 when there's no SP CARE?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or should Column 4 be SP CARE?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 19 Apr 2018 17:35:39 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2018-04-19T17:35:39Z</dc:date>
    <item>
      <title>use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455665#M115311</link>
      <description>&lt;P&gt;I have transposed data that I'd like to recode into 5 separate columns. The issue is that the data within the columns are unordered. So I do end up with binary values 0/1, but they correspond to the wrong newly created variable. I would like for the field in the first columns (Col1-Col5) to correctly agree with the newly created variables (DX thru UN).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp;Col1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Col2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col5&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; MH&amp;nbsp;CARE &amp;nbsp; SP CARE &amp;nbsp; PR CARE&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; UN CARE &amp;nbsp;DX CARE &amp;nbsp; PR CARE &amp;nbsp; UN CARE &amp;nbsp; MH CARE&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; MH CARE &amp;nbsp;UN CARE&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; &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;&lt;/P&gt;&lt;P&gt;5 &amp;nbsp; UN CARE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;want; set have;&lt;/P&gt;&lt;P&gt;array sc{5}$ col1-col5;&lt;/P&gt;&lt;P&gt;array pc{5} DX SP PR MH UN ;&lt;/P&gt;&lt;P&gt;do i = 1 to 5;&lt;/P&gt;&lt;P&gt;if sc(i)='DX CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if sc(i)='SP CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if sc(i)='PR CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if sc(i)='MH CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if sc(i)='UN CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;drop i;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My results which aren't correct:&lt;/P&gt;&lt;P&gt;ID &amp;nbsp;DX SP PR MH UN&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; 1 1 1 0 0&amp;nbsp;&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; 1 1 1 1 1&amp;nbsp;&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; 1 1 0 0 0&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4 &amp;nbsp;&amp;nbsp;. . . . .&lt;/P&gt;&lt;P&gt;5 &amp;nbsp;&amp;nbsp;1 0 0 0 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'd like the output below:&lt;/P&gt;&lt;P&gt;ID &amp;nbsp;DX SP PR MH UN&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 &amp;nbsp;&amp;nbsp;0 1 1 1 0&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; 1 1 1 1 1&amp;nbsp;&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; 0 0 0 1 1&amp;nbsp;&lt;/P&gt;&lt;P&gt;4 &amp;nbsp;&amp;nbsp;. . . . .&lt;/P&gt;&lt;P&gt;5 &amp;nbsp;&amp;nbsp;0 0 0 0 1&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 16:43:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455665#M115311</guid>
      <dc:creator>jsandsk</dc:creator>
      <dc:date>2018-04-19T16:43:22Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455669#M115313</link>
      <description>&lt;P&gt;Think about yoru ELSE conditions.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If it's not found it's resetting it to 0, even if you've previously set it to 1...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think this is what you want instead:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if sc(i) in ('DX CARE', 'SP CARE', 'PR CARE', 'MH CARE', 'UN CARE') then  pc(i)=1;

 else pc(i)=0;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/89223"&gt;@jsandsk&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;I have transposed data that I'd like to recode into 5 separate columns. The issue is that the data within the columns are unordered. So I do end up with binary values 0/1, but they correspond to the wrong newly created variable. I would like for the field in the first columns (Col1-Col5) to correctly agree with the newly created variables (DX thru UN).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp;Col1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Col2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col5&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; MH&amp;nbsp;CARE &amp;nbsp; SP CARE &amp;nbsp; PR CARE&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; UN CARE &amp;nbsp;DX CARE &amp;nbsp; PR CARE &amp;nbsp; UN CARE &amp;nbsp; MH CARE&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; MH CARE &amp;nbsp;UN CARE&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; &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;&lt;/P&gt;
&lt;P&gt;5 &amp;nbsp; UN CARE&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;want; set have;&lt;/P&gt;
&lt;P&gt;array sc{5}$ col1-col5;&lt;/P&gt;
&lt;P&gt;array pc{5} DX SP PR MH UN ;&lt;/P&gt;
&lt;P&gt;do i = 1 to 5;&lt;/P&gt;
&lt;P&gt;if sc(i)='DX CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if sc(i)='SP CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if sc(i)='PR CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if sc(i)='MH CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if sc(i)='UN CARE' then &amp;nbsp;pc(i)=1; else pc(i)=0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop i;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My results which aren't correct:&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp;DX SP PR MH UN&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; 1 1 1 0 0&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; 1 1 1 1 1&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; 1 1 0 0 0&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4 &amp;nbsp;&amp;nbsp;. . . . .&lt;/P&gt;
&lt;P&gt;5 &amp;nbsp;&amp;nbsp;1 0 0 0 0&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd like the output below:&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp;DX SP PR MH UN&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp;&amp;nbsp;0 1 1 1 0&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; 1 1 1 1 1&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3 &amp;nbsp; 0 0 0 1 1&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4 &amp;nbsp;&amp;nbsp;. . . . .&lt;/P&gt;
&lt;P&gt;5 &amp;nbsp;&amp;nbsp;0 0 0 0 1&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 16:48:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455669#M115313</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-19T16:48:04Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455674#M115316</link>
      <description>So I tried this as well, it still does not put the '1' in the correct column. When there is only MH for instance, it shows up as a '1' under DX, if that makes sense.</description>
      <pubDate>Thu, 19 Apr 2018 16:54:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455674#M115316</guid>
      <dc:creator>jsandsk</dc:creator>
      <dc:date>2018-04-19T16:54:26Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455676#M115318</link>
      <description>&lt;P&gt;Post your exact code and log, and if you can provide some sample data as text that would help to test it. See instructions below, only need a few rows.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 16:57:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455676#M115318</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-19T16:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455678#M115319</link>
      <description>&lt;P&gt;something like this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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 sc{5}$ col1-col5;

array pc{5} DX SP PR MH UN ;

do i = 1 to 5;

if vname(pc(i)) in sc then  pc(i)=1; else pc(i)=0;


end;

drop i;

run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:01:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455678#M115319</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-04-19T17:01:11Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455682#M115320</link>
      <description>A transpose would also be an easier method that doesn't require any hard coding of elements.</description>
      <pubDate>Thu, 19 Apr 2018 17:04:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455682#M115320</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-19T17:04:32Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455685#M115321</link>
      <description>&lt;P&gt;Unsure what you mean because I did transpose the data. Each record contains a different amount of the values, some don't contain any. So I still need to get the correct corresponding values for the new variables.&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:12:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455685#M115321</guid>
      <dc:creator>jsandsk</dc:creator>
      <dc:date>2018-04-19T17:12:43Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455686#M115322</link>
      <description>&lt;P&gt;what exactly does 'vname' reference? The name of the new variable?&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:13:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455686#M115322</guid>
      <dc:creator>jsandsk</dc:creator>
      <dc:date>2018-04-19T17:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455688#M115324</link>
      <description>&lt;P&gt;yes&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;The name of the new variable in your second array&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:15:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455688#M115324</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-04-19T17:15:25Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455690#M115325</link>
      <description>&lt;P&gt;Another approach plus an actual data set to work with:&lt;/P&gt;
&lt;PRE&gt;data have;
infile datalines dlm='|' truncover;
informat id best5. Col1 Col2 Col3 Col4  Col5 $10.;
input ID  Col1          Col2           Col3           Col4           Col5;
datalines;
1|MH CARE|SP CARE|PR CARE
2|UN CARE|DX CARE|PR CARE|UN CARE|MH CARE
3|MH CARE|UN CARE
4 
5|UN CARE
;
run;

data want;
   set have;
   array sc{5}$ col1-col5;
   array pc{5} DX SP PR MH UN ;
   array t{5} $10 _temporary_ ('DX CARE','SP CARE','PR CARE','MH CARE','UN CARE');
   do i= 1 to dim(pc);
      pc[i]=0;
   end;
   do i= 1 to dim(sc);
      if not missing(sc[i]) then pc[whichc(sc[i],of t(*))]=1;
   end;
   keep id dx--un;
run;
      

&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:17:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455690#M115325</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-04-19T17:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455693#M115327</link>
      <description>this code changes nothing within the data. Perhaps its missing some element.</description>
      <pubDate>Thu, 19 Apr 2018 17:21:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455693#M115327</guid>
      <dc:creator>jsandsk</dc:creator>
      <dc:date>2018-04-19T17:21:18Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455698#M115330</link>
      <description>&lt;P&gt;I was feeling lazy to test but here you go. I tested with &lt;EM&gt;&lt;STRONG&gt;your sample:&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines truncover;
input ID  Col1   &amp;amp; $10.       Col2    &amp;amp; $10.         Col3      &amp;amp; $10.       Col4      &amp;amp; $10.       Col5  &amp;amp; $10. ;
datalines;
1   MH CARE   SP CARE   PR CARE
2   UN CARE  DX CARE   PR CARE   UN CARE   MH CARE
3   MH CARE  UN CARE
4   .                  .                 .                  .                 . 
5   UN CARE
;

data want;
set have;
array sc{5}$ col1-col5;

array pc{5} DX SP PR MH UN ;

do i = 1 to 5;

if catx(' ',vname(pc(i)),'CARE') in sc then  pc(i)=1; else pc(i)=0;


end;

drop i;

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:35:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455698#M115330</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-04-19T17:35:24Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455699#M115331</link>
      <description>&lt;P&gt;This works, doesn't matter what the values are or how many. It removes duplicates as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines dlm='|' truncover;
informat id best5. Col1 Col2 Col3 Col4  Col5 $10.;
input ID  Col1          Col2           Col3           Col4           Col5;
datalines;
1|MH CARE|SP CARE|PR CARE
2|UN CARE|DX CARE|PR CARE|UN CARE|MH CARE
3|MH CARE|UN CARE
4 
5|UN CARE
;
run;

proc transpose data=have out=_temp;
by ID;
var col1-col5;
run;

data _temp2;
set _temp;
Value = 1;
Prefix = scan(col1, 1);
run;

*remove duplicates;
proc sort data=_temp2 nodupkey;
by id prefix;
run;

proc transpose data=_temp2 out=want;
by ID;
ID PREFIX;
Var Value;
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:35:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455699#M115331</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-19T17:35:35Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455700#M115332</link>
      <description>&lt;P&gt;Why does record 2, get SP=1 when there's no SP CARE?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or should Column 4 be SP CARE?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 17:35:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455700#M115332</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-19T17:35:39Z</dc:date>
    </item>
    <item>
      <title>Re: use array to recode multiple unordered columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455710#M115337</link>
      <description>I'm going to try this, thanks!</description>
      <pubDate>Thu, 19 Apr 2018 17:58:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/use-array-to-recode-multiple-unordered-columns/m-p/455710#M115337</guid>
      <dc:creator>jsandsk</dc:creator>
      <dc:date>2018-04-19T17:58:16Z</dc:date>
    </item>
  </channel>
</rss>

