<?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: Assigning Sort Order Based on Position in a List Sorted Differently in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983880#M379606</link>
    <description>&lt;P&gt;P&lt;SPAN&gt;lease provide data as working SAS data step code (&lt;/SPAN&gt;&lt;A href="https://blogs.sas.com/content/sastraining/2016/03/11/jedi-sas-tricks-data-to-data-step-macro/" rel="nofollow noopener noreferrer" target="_blank"&gt;examples and instructions&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 23 Feb 2026 16:41:27 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2026-02-23T16:41:27Z</dc:date>
    <item>
      <title>Assigning Sort Order Based on Position in a List Sorted Differently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983878#M379604</link>
      <description>&lt;P&gt;My client has asked me for a specific ordering of their output, but I am having a hard time figuring out how to do this programatically.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a Medical History (MH) dataset, and I am supposed to count the number of subjects in each SOC/PT MH term grouped by an assigned diagnosis.&amp;nbsp; Then I keep any terms that have 10% or more in either diagnosis.&amp;nbsp; This part I have been able to accomplish.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next, they want me to sort by the HKD diagnosis percent (HKD_PCT) and keep the first SOC, but then any subsequest terms that have the same SOC should be moved up in order to be together.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is what my summary dataset currently looks like when sorted by HKD_PCT:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="701"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="210"&gt;&lt;STRONG&gt;MHSOC&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="154"&gt;&lt;STRONG&gt;MHPT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="58"&gt;&lt;STRONG&gt;HKD_CNT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="57"&gt;&lt;STRONG&gt;CKD_CNT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="56"&gt;&lt;STRONG&gt;HKD_PCT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="56"&gt;&lt;STRONG&gt;CKD_PCT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55"&gt;&lt;STRONG&gt;HKD&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55"&gt;&lt;STRONG&gt;CKD&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Renal and urinary disorders&lt;/TD&gt;
&lt;TD&gt;Hypertensive nephropathy&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0.94595&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;35 (95%)&lt;/TD&gt;
&lt;TD&gt;0 (0%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Vascular disorders&lt;/TD&gt;
&lt;TD&gt;Hypertension&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;TD&gt;0.81081&lt;/TD&gt;
&lt;TD&gt;0.76344&lt;/TD&gt;
&lt;TD&gt;30 (81%)&lt;/TD&gt;
&lt;TD&gt;71 (76%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Renal and urinary disorders&lt;/TD&gt;
&lt;TD&gt;Chronic kidney disease&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;0.37838&lt;/TD&gt;
&lt;TD&gt;0.96774&lt;/TD&gt;
&lt;TD&gt;14 (38%)&lt;/TD&gt;
&lt;TD&gt;90 (97%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Vitamin D deficiency&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;0.32432&lt;/TD&gt;
&lt;TD&gt;0.23656&lt;/TD&gt;
&lt;TD&gt;12 (32%)&lt;/TD&gt;
&lt;TD&gt;22 (24%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Hyperlipidaemia&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;0.2973&lt;/TD&gt;
&lt;TD&gt;0.32258&lt;/TD&gt;
&lt;TD&gt;11 (30%)&lt;/TD&gt;
&lt;TD&gt;30 (32%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Obesity&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;0.24324&lt;/TD&gt;
&lt;TD&gt;0.15054&lt;/TD&gt;
&lt;TD&gt;9 (24%)&lt;/TD&gt;
&lt;TD&gt;14 (15%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Dyslipidaemia&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;0.21622&lt;/TD&gt;
&lt;TD&gt;0.09677&lt;/TD&gt;
&lt;TD&gt;8 (22%)&lt;/TD&gt;
&lt;TD&gt;9 (10%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Renal and urinary disorders&lt;/TD&gt;
&lt;TD&gt;Acute kidney injury&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0.13514&lt;/TD&gt;
&lt;TD&gt;0.03226&lt;/TD&gt;
&lt;TD&gt;5 (14%)&lt;/TD&gt;
&lt;TD&gt;3 (3%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Gout&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;0.08108&lt;/TD&gt;
&lt;TD&gt;0.23656&lt;/TD&gt;
&lt;TD&gt;3 (8%)&lt;/TD&gt;
&lt;TD&gt;22 (24%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Vascular disorders&lt;/TD&gt;
&lt;TD&gt;Essential hypertension&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;0.02703&lt;/TD&gt;
&lt;TD&gt;0.11828&lt;/TD&gt;
&lt;TD&gt;1 (3%)&lt;/TD&gt;
&lt;TD&gt;11 (12%)&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS Code to create the above table:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
	create table MH_SOC_SUMMARY (MHBODSYS char(100), MHDECOD char(100), HKD_CNT	num, CKD_CNT num, HKD_PCT num, CKD_PCT num, HKD char(25), CKD char(25));
		insert into mh_soc_summary(mhbodsys, mhdecod, hkd_cnt, ckd_cnt, hkd_pct, ckd_pct)
			values('Renal and urinary disorders','Hypertensive nephropathy',35,.,0.94595,.)
			values('Vascular disorders','Hypertension',30,71,0.81081,0.76344)
			values('Renal and urinary disorders','Chronic kidney disease',14,90,0.37838,0.96774)
			values('Metabolism and nutrition disorders','Vitamin D deficiency',12,22,0.32432,0.23656)
			values('Metabolism and nutrition disorders','Hyperlipidaemia',11,30,0.2973,0.32258)
			values('Metabolism and nutrition disorders','Obesity',9,14,0.24324,0.15054)
			values('Metabolism and nutrition disorders','Dyslipidaemia',8,9,0.21622,0.09677)
			values('Renal and urinary disorders','Acute kidney injury',5,3,0.13514,0.03226)
			values('Metabolism and nutrition disorders','Gout',3,22,0.08108,0.23656)
			values('Vascular disorders','Essential hypertension',1,11,0.02703,0.11828);
quit;
data mh_soc_summary;
	set mh_soc_summary;
	if hkd_cnt^=. then HKD=compress(put(hkd_cnt,9.0)) || ' (' || compress(put(hkd_pct,percent9.0)) || ')';
		else HKD='0 (0%)';
	if ckd_cnt^=. then CKD=compress(put(ckd_cnt,9.0)) || ' (' || compress(put(ckd_pct,percent9.0)) || ')';
		else CKD='0 (0%)';
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is the order that the table should show (where I manually added SRT1 and SRT2 variable values):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="829"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="210"&gt;&lt;STRONG&gt;MHSOC&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="154"&gt;&lt;STRONG&gt;MHPT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="58"&gt;&lt;STRONG&gt;HKD_CNT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="57"&gt;&lt;STRONG&gt;CKD_CNT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="56"&gt;&lt;STRONG&gt;HKD_PCT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="56"&gt;&lt;STRONG&gt;CKD_PCT&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55"&gt;&lt;STRONG&gt;HKD&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="55"&gt;&lt;STRONG&gt;CKD&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;STRONG&gt;SRT1&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;STRONG&gt;SRT2&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Renal and urinary disorders&lt;/TD&gt;
&lt;TD&gt;Hypertensive nephropathy&lt;/TD&gt;
&lt;TD&gt;35&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0.94595&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;35 (95%)&lt;/TD&gt;
&lt;TD&gt;0 (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;Renal and urinary disorders&lt;/TD&gt;
&lt;TD&gt;Chronic kidney disease&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;TD&gt;0.37838&lt;/TD&gt;
&lt;TD&gt;0.96774&lt;/TD&gt;
&lt;TD&gt;14 (38%)&lt;/TD&gt;
&lt;TD&gt;90 (97%)&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Renal and urinary disorders&lt;/TD&gt;
&lt;TD&gt;Acute kidney injury&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0.13514&lt;/TD&gt;
&lt;TD&gt;0.03226&lt;/TD&gt;
&lt;TD&gt;5 (14%)&lt;/TD&gt;
&lt;TD&gt;3 (3%)&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Vascular disorders&lt;/TD&gt;
&lt;TD&gt;Hypertension&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;TD&gt;0.81081&lt;/TD&gt;
&lt;TD&gt;0.76344&lt;/TD&gt;
&lt;TD&gt;30 (81%)&lt;/TD&gt;
&lt;TD&gt;71 (76%)&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Vascular disorders&lt;/TD&gt;
&lt;TD&gt;Essential hypertension&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;0.02703&lt;/TD&gt;
&lt;TD&gt;0.11828&lt;/TD&gt;
&lt;TD&gt;1 (3%)&lt;/TD&gt;
&lt;TD&gt;11 (12%)&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Vitamin D deficiency&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;0.32432&lt;/TD&gt;
&lt;TD&gt;0.23656&lt;/TD&gt;
&lt;TD&gt;12 (32%)&lt;/TD&gt;
&lt;TD&gt;22 (24%)&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Hyperlipidaemia&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;0.2973&lt;/TD&gt;
&lt;TD&gt;0.32258&lt;/TD&gt;
&lt;TD&gt;11 (30%)&lt;/TD&gt;
&lt;TD&gt;30 (32%)&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Obesity&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;0.24324&lt;/TD&gt;
&lt;TD&gt;0.15054&lt;/TD&gt;
&lt;TD&gt;9 (24%)&lt;/TD&gt;
&lt;TD&gt;14 (15%)&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Dyslipidaemia&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;0.21622&lt;/TD&gt;
&lt;TD&gt;0.09677&lt;/TD&gt;
&lt;TD&gt;8 (22%)&lt;/TD&gt;
&lt;TD&gt;9 (10%)&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Metabolism and nutrition disorders&lt;/TD&gt;
&lt;TD&gt;Gout&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;0.08108&lt;/TD&gt;
&lt;TD&gt;0.23656&lt;/TD&gt;
&lt;TD&gt;3 (8%)&lt;/TD&gt;
&lt;TD&gt;22 (24%)&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since SOC: "Renal and urinary disorders" and PT: "Hypertensive nephropathy" has the highest HKD percent, it should be first.&amp;nbsp; Then the other 2 subsequent "Renal and urinary disorders" terms should be right after it.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SOC: "Vascular disorders" and PT: "Hypertension" is the next highest HKD percent, it will be the next SOC with all other "Vascular disorders" terms right after it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can't just hardcode this because the report gets updated weekly, and these terms could change with each update.&amp;nbsp; I can't think of how to utilize first.MHSOC or any other method that I would typically use.&amp;nbsp; Any suggestions on how to achieve the SRT1 and SRT2 variables I manually added above?&lt;/P&gt;</description>
      <pubDate>Mon, 23 Feb 2026 17:07:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983878#M379604</guid>
      <dc:creator>djbateman</dc:creator>
      <dc:date>2026-02-23T17:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Sort Order Based on Position in a List Sorted Differently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983880#M379606</link>
      <description>&lt;P&gt;P&lt;SPAN&gt;lease provide data as working SAS data step code (&lt;/SPAN&gt;&lt;A href="https://blogs.sas.com/content/sastraining/2016/03/11/jedi-sas-tricks-data-to-data-step-macro/" rel="nofollow noopener noreferrer" target="_blank"&gt;examples and instructions&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Feb 2026 16:41:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983880#M379606</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2026-02-23T16:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Sort Order Based on Position in a List Sorted Differently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983881#M379607</link>
      <description>&lt;P&gt;I'm sorry about that.&amp;nbsp; I didn't verify my code ran clean before I posted it.&amp;nbsp; I have updated the SQL code in the original post, but here is the same data in a DATA step for you:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data mh_soc_summary;
	length MHSOC $100 MHPT $100 HKD_CNT	8 CKD_CNT 8 HKD_PCT 8 CKD_PCT 8;
	mhsoc='Renal and urinary disorders';
	mhpt='Hypertensive nephropathy';
	hkd_cnt=35;
	ckd_cnt=.;
	hkd_pct=0.94595;
	ckd_pct=.;
	output;
	mhsoc='Vascular disorders';
	mhpt='Hypertension';
	hkd_cnt=30;
	ckd_cnt=71;
	hkd_pct=0.81081;
	ckd_pct=0.76344;
	output;
	mhsoc='Renal and urinary disorders';
	mhpt='Chronic kidney disease';
	hkd_cnt=14;
	ckd_cnt=90;
	hkd_pct=0.37838;
	ckd_pct=0.96774;
	output;
	mhsoc='Metabolism and nutrition disorders';
	mhpt='Vitamin D deficiency';
	hkd_cnt=12;
	ckd_cnt=22;
	hkd_pct=0.32432;
	ckd_pct=0.23656;
	output;
	mhsoc='Metabolism and nutrition disorders';
	mhpt='Hyperlipidaemia';
	hkd_cnt=11;
	ckd_cnt=30;
	hkd_pct=0.2973;
	ckd_pct=0.32258;
	output;
	mhsoc='Metabolism and nutrition disorders';
	mhpt='Obesity';
	hkd_cnt=9;
	ckd_cnt=14;
	hkd_pct=0.24324;
	ckd_pct=0.15054;
	output;
	mhsoc='Metabolism and nutrition disorders';
	mhpt='Dyslipidaemia';
	hkd_cnt=8;
	ckd_cnt=9;
	hkd_pct=0.21622;
	ckd_pct=0.09677;
	output;
	mhsoc='Renal and urinary disorders';
	mhpt='Acute kidney injury';
	hkd_cnt=5;
	ckd_cnt=3;
	hkd_pct=0.13514;
	ckd_pct=0.03226;
	output;
	mhsoc='Metabolism and nutrition disorders';
	mhpt='Gout';
	hkd_cnt=3;
	ckd_cnt=22;
	hkd_pct=0.08108;
	ckd_pct=0.23656;
	output;
	mhsoc='Vascular disorders';
	mhpt='Essential hypertension';
	hkd_cnt=1;
	ckd_cnt=11;
	hkd_pct=0.02703;
	ckd_pct=0.11828;
	output;
run;
data mh_soc_summary;
	set mh_soc_summary;
	if hkd_cnt^=. then HKD=compress(put(hkd_cnt,9.0)) || ' (' || compress(put(hkd_pct,percent9.0)) || ')';
		else HKD='0 (0%)';
	if ckd_cnt^=. then CKD=compress(put(ckd_cnt,9.0)) || ' (' || compress(put(ckd_pct,percent9.0)) || ')';
		else CKD='0 (0%)';
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 23 Feb 2026 17:08:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983881#M379607</guid>
      <dc:creator>djbateman</dc:creator>
      <dc:date>2026-02-23T17:08:40Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Sort Order Based on Position in a List Sorted Differently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983883#M379608</link>
      <description>&lt;P&gt;There might be a simpler way, but the code below that I tried uses&amp;nbsp;a PROC FREQ step to get the unique values of Mhsoc in data order. I store that in an output data set and then build a format adding the _n_ value to the Label variable. I then assign that format to a new variable that I can use in a PROC SORT.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data mh_soc_summary;
	set mh_soc_summary;
	if hkd_cnt^=. then HKD=compress(put(hkd_cnt,9.0)) || ' (' || compress(put(hkd_pct,percent9.0)) || ')';
		else HKD='0 (0%)';
	if ckd_cnt^=. then CKD=compress(put(ckd_cnt,9.0)) || ' (' || compress(put(ckd_pct,percent9.0)) || ')';
		else CKD='0 (0%)';
run;

proc freq order=data noprint;
tables mhsoc / out=out(keep=mhsoc);
run;

data out;
set out;
label=_n_;
start=mhsoc;
fmtname='$soc';
run;

proc format cntlin=out fmtlib;
select $soc;
run;

data want;
set mh_soc_summary;
flag=put(mhsoc,$soc.);
run;

proc sort data=want out=final;
by flag;
run;

proc print data=final;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 23 Feb 2026 18:10:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983883#M379608</guid>
      <dc:creator>Kathryn_SAS</dc:creator>
      <dc:date>2026-02-23T18:10:04Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Sort Order Based on Position in a List Sorted Differently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983885#M379609</link>
      <description>&lt;P&gt;It is much easier to share your data as a simple data step.&amp;nbsp; If you already have an example dataset you created you can use this&amp;nbsp;&lt;A href="https://github.com/sasutils/macros/blob/master/ds2post.sas" target="_self"&gt;%DSPOST()&lt;/A&gt;&amp;nbsp; macro to help generate such a step.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data MH_SOC_SUMMARY ;
  infile datalines dsd dlm='|' truncover;
  input MHSOC :$100. MHPT :$100. HKD_CNT CKD_CNT HKD_PCT CKD_PCT ;
  length HKD CKD $21 ;
  if missing(hkd_cnt) then HKD='0 (0%)';
  else HKD=catx(' ',put(hkd_cnt,percent9.),cats('(',put(hkd_pct,percent9.),')'));
  if missing(ckd_cnt) then CKD='0 (0%)';
  else CKD=catx(' ',put(ckd_cnt,percent9.),cats('(',put(ckd_pct,percent9.),')'));  
datalines4;
Renal and urinary disorders|Hypertensive nephropathy|35||0.94595|
Vascular disorders|Hypertension|30|71|0.81081|0.76344
Renal and urinary disorders|Chronic kidney disease|14|90|0.37838|0.96774
Metabolism and nutrition disorders|Vitamin D deficiency|12|22|0.32432|0.23656
Metabolism and nutrition disorders|Hyperlipidaemia|11|30|0.2973|0.32258
Metabolism and nutrition disorders|Obesity|9|14|0.24324|0.15054
Metabolism and nutrition disorders|Dyslipidaemia|8|9|0.21622|0.09677
Renal and urinary disorders|Acute kidney injury|5|3|0.13514|0.03226
Metabolism and nutrition disorders|Gout|3|22|0.08108|0.23656
Vascular disorders|Essential hypertension|1|11|0.02703|0.11828
;;;;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your description is missing a step, which probably explains why your are having a problem coding it.&amp;nbsp; &amp;nbsp;To sort the way you want to all of the values of MHSOC should have same value of HDK_PCT.&amp;nbsp; But your data does not.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 826px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113292iF908953FA71B0C45/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So perhaps you mean you want to sort by the MAXimum value of HKD_PCT per MHSOC? Or perhaps the SUM of the HKD_CNT variable?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If so then first add that variable to your data and then you can use it when ordering the data.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
 create table for_report as
 select a.*, max(hkd_pct) as max_hkd_pct
 from mh_soc_summary a
 group by mhsoc
 order by max_hkd_pct desc, mhsoc, hkd_pct desc 
;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113293i38B4E162A20D5879/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&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, 23 Feb 2026 18:13:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983885#M379609</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2026-02-23T18:13:51Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Sort Order Based on Position in a List Sorted Differently</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983886#M379610</link>
      <description>Don’t have a real keyboard in front of me, but all you need to do is take the max hkd_pct grouping by MHSOC, join that collapsed subquery result back to your data, then sort by the max value (max_pct) and within that by the individual hkd_pct</description>
      <pubDate>Mon, 23 Feb 2026 18:16:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Sort-Order-Based-on-Position-in-a-List-Sorted/m-p/983886#M379610</guid>
      <dc:creator>quickbluefish</dc:creator>
      <dc:date>2026-02-23T18:16:51Z</dc:date>
    </item>
  </channel>
</rss>

