<?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: sorting according to PROC FORMAT in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/368285#M87820</link>
    <description>&lt;P&gt;Nice! Thanks.&lt;/P&gt;</description>
    <pubDate>Mon, 19 Jun 2017 12:49:22 GMT</pubDate>
    <dc:creator>GreggB</dc:creator>
    <dc:date>2017-06-19T12:49:22Z</dc:date>
    <item>
      <title>sorting according to PROC FORMAT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367484#M87489</link>
      <description>&lt;P&gt;I have the var Code1 that has the following values:&lt;/P&gt;
&lt;P&gt;Code1 Frequency &lt;BR /&gt;*DD&amp;nbsp;&lt;BR /&gt;*OHI&lt;BR /&gt;AU&amp;nbsp;&lt;BR /&gt;EH&amp;nbsp;&lt;BR /&gt;HH&amp;nbsp;&lt;BR /&gt;ID &amp;nbsp;&lt;BR /&gt;LD&amp;nbsp;&lt;BR /&gt;MD&amp;nbsp;&lt;BR /&gt;OH&amp;nbsp;&lt;BR /&gt;SP&amp;nbsp;&lt;/P&gt;
&lt;P&gt;VH&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;They are formatted like so:&lt;/P&gt;
&lt;P&gt;proc format;&lt;BR /&gt;value $ iepfmt&lt;BR /&gt;EM='1. Intellectual Disabilities' TM='1. Intellectual Disabilities' HH='2. Hearing Impairments' SP='3. Speech Impairments' VH='4. Visual Impairments' &lt;BR /&gt;EH='5. Emotional Disturbance'&lt;BR /&gt;OH='6. Orthopedic Impairments' '*OHI'='7. Other Health Impairments' LD='8. Specific Learning Disabilities' MD='10. Multiple Disabilities' AU='11. Autism'&lt;BR /&gt;'*TBI'='12. Traumatic Brain Injury' '*DD'='13. Developmental Delay' &lt;BR /&gt;ID='1. Intellectual Disabilities' '*PMD'='1. Intellectual Disabilities'&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;I want to sort the variable Code 1 according to the number in char string of the format so that&amp;nbsp;&lt;SPAN&gt;'1. Intellectual Disabilities'&amp;nbsp; appears first etc and&amp;nbsp;'13. Developmental Delay'&amp;nbsp; appears last in the printout.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="branch"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Thu, 15 Jun 2017 19:50:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367484#M87489</guid>
      <dc:creator>GreggB</dc:creator>
      <dc:date>2017-06-15T19:50:52Z</dc:date>
    </item>
    <item>
      <title>Re: sorting according to PROC FORMAT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367505#M87496</link>
      <description>&lt;P&gt;Sorting according to a format can be a bit tricky.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try assigning each code a num variable and then sort on the number variable like below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* Inputting the data */&lt;/P&gt;&lt;P&gt;Data Code;&lt;BR /&gt;Input Code1 $;&lt;BR /&gt;Datalines;&lt;BR /&gt;*DD&lt;BR /&gt;*OHI&lt;BR /&gt;AU&lt;BR /&gt;EH&lt;BR /&gt;HH&lt;BR /&gt;ID&lt;BR /&gt;LD&lt;BR /&gt;MD&lt;BR /&gt;OH&lt;BR /&gt;SP&lt;BR /&gt;VH&lt;BR /&gt;;&lt;BR /&gt;Run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* Creating "Type" and "Num" variables based on the desired formats above"&lt;/P&gt;&lt;P&gt;Data Calc;&lt;BR /&gt;Set Code;&lt;/P&gt;&lt;P&gt;If Code1 in ('EM' 'TM' 'ID' '*PMD') Then do;&lt;BR /&gt;Type = "Intellectual Disabilities";&lt;BR /&gt;Num = 1; End;&lt;BR /&gt;Else If Code1 = 'HH' Then do;&lt;BR /&gt;Type = "Hearing Impariments";&lt;BR /&gt;Num =2; End;&lt;BR /&gt;Else If Code1 = 'SP' Then do;&lt;BR /&gt;Type = "Speech Impairments";&lt;BR /&gt;Num = 3; End;&lt;BR /&gt;Else If Code1 = 'VH' Then do;&lt;BR /&gt;Type = "Visual Impairments";&lt;BR /&gt;Num = 4; End;&lt;BR /&gt;Else If Code1 = 'EH' Then do;&lt;BR /&gt;Type = "Emotional Disturbance";&lt;BR /&gt;Num = 5; End;&lt;BR /&gt;Else If Code1 = 'OH' Then do;&lt;BR /&gt;Type = "Orthopedic Impairments";&lt;BR /&gt;Num = 6; End;&lt;BR /&gt;Else If Code1 = '*OHI' Then do;&lt;BR /&gt;Type = "Other Health Impairments";&lt;BR /&gt;Num = 7; End;&lt;BR /&gt;Else If Code1 = 'LD' Then do;&lt;BR /&gt;Type = "Specific Learning Disabilities";&lt;BR /&gt;Num = 8; End;&lt;BR /&gt;Else If Code1 = 'MD' Then do;&lt;BR /&gt;Type = "Multiple Disabilities";&lt;BR /&gt;Num = 10; End;&lt;BR /&gt;Else If Code1 = 'AU' Then do;&lt;BR /&gt;Type = "Autism";&lt;BR /&gt;Num = 11; End;&lt;BR /&gt;Else If Code1 = '*TBI' Then do;&lt;BR /&gt;Type = "Traumatic Brain Injury";&lt;BR /&gt;Num = 12; End;&lt;BR /&gt;Else If Code1 = '*DD' Then do;&lt;BR /&gt;Type = "Developmental Delay";&lt;BR /&gt;Num = 13; End;&lt;BR /&gt;Run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* Sorting the data */&lt;/P&gt;&lt;P&gt;Proc Sort data = calc;&lt;BR /&gt;By Num;&lt;BR /&gt;Run;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2017 21:02:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367505#M87496</guid>
      <dc:creator>jdwaterman91</dc:creator>
      <dc:date>2017-06-15T21:02:05Z</dc:date>
    </item>
    <item>
      <title>Re: sorting according to PROC FORMAT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367507#M87497</link>
      <description>&lt;P&gt;Would something like the following suffice?:&lt;/P&gt;
&lt;PRE&gt;proc format;
value $iepfmt
EM='1. Intellectual Disabilities' TM='1. Intellectual Disabilities' HH='2. Hearing Impairments' SP='3. Speech Impairments' VH='4. Visual Impairments' 
EH='5. Emotional Disturbance'
OH='6. Orthopedic Impairments' '*OHI'='7. Other Health Impairments' LD='8. Specific Learning Disabilities' MD='10. Multiple Disabilities' AU='11. Autism'
'*TBI'='12. Traumatic Brain Injury' '*DD'='13. Developmental Delay' 
ID='1. Intellectual Disabilities' '*PMD'='1. Intellectual Disabilities'
;
run;
data have;
  input Code1 $;
  format Code1 $iepfmt.;
  _Code1=put(Code1,$iepfmt.);
  cards;
*DD 
*OHI
AU 
EH 
HH 
ID  
LD 
MD 
OH 
SP 
VH
;
 
proc sort data=have sortseq=linguistic (NUMERIC_COLLATION=ON) out=want (drop=_:);
  by _Code1;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2017 21:14:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367507#M87497</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-15T21:14:12Z</dc:date>
    </item>
    <item>
      <title>Re: sorting according to PROC FORMAT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367541#M87521</link>
      <description>&lt;P&gt;You could also sort using proc sql with an ORDER BY. &amp;nbsp;If your formats were padded it would not require the extra manipulation, but it's doable (if inefficient, possibly) regardless.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc format;
value $iepfmt
EM='1. Intellectual Disabilities' TM='1. Intellectual Disabilities' HH='2. Hearing Impairments' SP='3. Speech Impairments' VH='4. Visual Impairments' 
EH='5. Emotional Disturbance'
OH='6. Orthopedic Impairments' '*OHI'='7. Other Health Impairments' LD='8. Specific Learning Disabilities' MD='10. Multiple Disabilities' AU='11. Autism'
'*TBI'='12. Traumatic Brain Injury' '*DD'='13. Developmental Delay' 
ID='1. Intellectual Disabilities' '*PMD'='1. Intellectual Disabilities'
;
run;
data have;
  input Code1 $;
  format Code1 $iepfmt.;
  cards;
*DD 
*OHI
AU 
EH 
HH 
ID  
LD 
MD 
OH 
SP 
VH
;

proc sql;
    CREATE TABLE want AS
    SELECT * 
    FROM have
    ORDER BY input(scan(put(code1, $iepfmt.), 1, '.'), best.);
/*    ORDER BY put(code1, $iepfmt.); If formats are padded 01 02 03...*/
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 15 Jun 2017 23:18:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/367541#M87521</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-06-15T23:18:40Z</dc:date>
    </item>
    <item>
      <title>Re: sorting according to PROC FORMAT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/368285#M87820</link>
      <description>&lt;P&gt;Nice! Thanks.&lt;/P&gt;</description>
      <pubDate>Mon, 19 Jun 2017 12:49:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sorting-according-to-PROC-FORMAT/m-p/368285#M87820</guid>
      <dc:creator>GreggB</dc:creator>
      <dc:date>2017-06-19T12:49:22Z</dc:date>
    </item>
  </channel>
</rss>

