<?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 Grouping using multiple columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430984#M106555</link>
    <description>&lt;P&gt;Hello guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My data looks like this&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Patient ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;ICD_1&lt;/TD&gt;&lt;TD&gt;ICD_2&lt;/TD&gt;&lt;TD&gt;ICD_3&lt;/TD&gt;&lt;TD&gt;ICD_4&lt;/TD&gt;&lt;TD&gt;ICD_5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/1/2012&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2/12/2012&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;12/12/2012&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get the following:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ICD&lt;/TD&gt;&lt;TD&gt;No.of Patients&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F&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;Basically, my data contains&amp;nbsp;several patient records with their diagnosis codes (ICD). I want to take all the diagnosis codes in the data and count number of unique patients, so that I can understand most common diseases.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
    <pubDate>Thu, 25 Jan 2018 16:34:16 GMT</pubDate>
    <dc:creator>Sujithpeta</dc:creator>
    <dc:date>2018-01-25T16:34:16Z</dc:date>
    <item>
      <title>Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430984#M106555</link>
      <description>&lt;P&gt;Hello guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My data looks like this&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Patient ID&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;ICD_1&lt;/TD&gt;&lt;TD&gt;ICD_2&lt;/TD&gt;&lt;TD&gt;ICD_3&lt;/TD&gt;&lt;TD&gt;ICD_4&lt;/TD&gt;&lt;TD&gt;ICD_5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1/1/2012&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2/12/2012&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;12/12/2012&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get the following:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ICD&lt;/TD&gt;&lt;TD&gt;No.of Patients&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;E&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F&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;Basically, my data contains&amp;nbsp;several patient records with their diagnosis codes (ICD). I want to take all the diagnosis codes in the data and count number of unique patients, so that I can understand most common diseases.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2018 16:34:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430984#M106555</guid>
      <dc:creator>Sujithpeta</dc:creator>
      <dc:date>2018-01-25T16:34:16Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430989#M106557</link>
      <description>&lt;P&gt;Hey ladies,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can transpose your data to a long format using PROC TRANSPOSE and then you can run a standard PROC FREQ to output the data.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If it's possible to have a patient with multiple ICD codes, you may need to remove duplicates as well.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2018 16:42:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430989#M106557</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-25T16:42:25Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430993#M106559</link>
      <description>&lt;P&gt;You need transpose your data, sort nodupkey and finaly run proc freq.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using a datastep:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data transposed;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keep patiant_id&amp;nbsp; ICD;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array ICX $ icd_1 - icd_5;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; di i=1 to dim(icx);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if icx(i) ne ' ' then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ICD = icx(i);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;output;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sort data=transposed out=test nodupkey;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;by ICD patient_id;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc freq data=test;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; table ICD;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2018 16:51:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430993#M106559</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-01-25T16:51:12Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430995#M106560</link>
      <description>&lt;P&gt;another demo:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines truncover;
input (PatientID	Date	ICD_1	ICD_2	ICD_3	ICD_4	ICD_5) (:$10.);
datalines;
1	1/1/2012	A	B	C	 	 
1	2/12/2012	A	D	E	F	 
2	12/12/2012	B	C	 	 	 
;


proc transpose data= have out=__have;
by date notsorted;
var ICD_1-ICD_5;
run;


proc freq data=__have;
tables col1;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Jan 2018 16:54:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/430995#M106560</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-25T16:54:09Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431004#M106563</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;, wouldn't your code count twice patient_id=1 with ICD_1='A'&amp;nbsp; as it exists in two observation,&lt;/P&gt;
&lt;P&gt;different days ?&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2018 17:04:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431004#M106563</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-01-25T17:04:22Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431013#M106565</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/88384"&gt;@Shmuel&lt;/a&gt;&amp;nbsp;, love your attention to detail.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Revised:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines truncover;
input (PatientID	Date	ICD_1	ICD_2	ICD_3	ICD_4	ICD_5) (:$10.);
datalines;
1	1/1/2012	A	B	C	 	 
1	2/12/2012	A	D	E	F	 
2	12/12/2012	B	C	 	 	 
;


proc transpose data= have out=__have;
by date notsorted;
var ICD_1-ICD_5;
run;

proc sort data=__have out=__have1 nodupkey;
by _name_ col1;
run;


proc freq data=__have1;
tables col1;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Jan 2018 17:25:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431013#M106565</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-25T17:25:37Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431026#M106570</link>
      <description>&lt;P&gt;Fancy hashes ? for fun--&amp;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 (PatientID	Date	ICD_1	ICD_2	ICD_3	ICD_4	ICD_5) (:$10.);
datalines;
1	1/1/2012	A	B	C	 	 
1	2/12/2012	A	D	E	F	 
2	12/12/2012	B	C	 	 	 
;
data _null_;
if _N_ = 1 then do;
	length icd $8 _icd $8 count 8;
   declare hash h(ordered:'y');
   rc = h.defineKey('icd');
   rc = h.defineData('icd','_icd','count');
   rc = h.defineDone();
   call missing(_icd,count);
end;
set have end=last;
array t(*) ICD_1-ICD_5;
count=1;
do _n_=1 to dim(t);
	icd=t(_n_);
	_icd=vname(t(_n_));
	if h.check() ne 0 then h.add();
	else if  h.find()=0 then do;
	if _icd ne vname(t(_n_)) then do;count+1; h.replace(); end;
	end;
end;
if last then h.output(dataset:'want(drop=_icd where=(not missing(icd))');
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Jan 2018 18:12:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431026#M106570</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-25T18:12:06Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping using multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431290#M106654</link>
      <description>&lt;PRE&gt;


data have;
infile datalines truncover expandtabs;
input (PatientID	Date	ICD_1	ICD_2	ICD_3	ICD_4	ICD_5) (:$10.);
datalines;
1	1/1/2012	A	B	C	 	 
1	2/12/2012	A	D	E	F	 
2	12/12/2012	B	C	 	 	 
;

proc iml;
use have(keep=ICD_:);
read all var _char_ into x;
close;
call tabulate(level,freq,x);
level=t(level);
freq=t(freq);
create want var {level freq};
append;
close;
quit;

&lt;/PRE&gt;</description>
      <pubDate>Fri, 26 Jan 2018 15:00:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Grouping-using-multiple-columns/m-p/431290#M106654</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-01-26T15:00:42Z</dc:date>
    </item>
  </channel>
</rss>

