<?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: I need to turn a range of values (i.e. A0259-B3548) into a list of all values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732657#M228311</link>
    <description>&lt;P&gt;You could hack SAS name list generation feature :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
length name $100 range $16;
input name &amp;amp; range;
datalines;
Enteral Formulas and Additives  B4100-B4162 B4100   B4162
Parenteral Solutions and Supplies   B4164-B5200 B4164   B5200
Nutrition Infusion Pumps and Supplies Not Otherwise Classified  B9002-B9009 B9002   B9009
Other Theraputic Procedures  C1052-C1062 C1052   C1062
Outpatient PPS  C1713-C1719 C1713   C1719
Walking Aids and Attachments    E0100-E0159 E0100   E0159
Sitz Bath/Equipment  E0160-E0162 E0160   E0162
Commode Chair and Supplies  E0163-E0175 E0163   E0175
;

filename arrays temp;
data _null_;
file arrays;
set have;
arrayName = cats("x", _n_);
str = catx(" ", "array", arrayName, "{*}", range, ";");
put str;
run;

data want(keep=name);
%include arrays;
array all _numeric_;
do i = 1 to dim(all);
    name = vname(all{i});
    output;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 09 Apr 2021 21:41:07 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2021-04-09T21:41:07Z</dc:date>
    <item>
      <title>I need to turn a range of values (i.e. A0259-B3548) into a list of all values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732652#M228307</link>
      <description>&lt;P&gt;I have a list of ranges, data looks like this:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Enteral Formulas and Additives&lt;/TD&gt;&lt;TD&gt;B4100-B4162&lt;/TD&gt;&lt;TD&gt;B4100&lt;/TD&gt;&lt;TD&gt;B4162&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Parenteral Solutions and Supplies&lt;/TD&gt;&lt;TD&gt;B4164-B5200&lt;/TD&gt;&lt;TD&gt;B4164&lt;/TD&gt;&lt;TD&gt;B5200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Nutrition Infusion Pumps and Supplies Not Otherwise Classified&lt;/TD&gt;&lt;TD&gt;B9002-B9999&lt;/TD&gt;&lt;TD&gt;B9002&lt;/TD&gt;&lt;TD&gt;B9999&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Other Theraputic Procedures&lt;/TD&gt;&lt;TD&gt;C1052-C1062&lt;/TD&gt;&lt;TD&gt;C1052&lt;/TD&gt;&lt;TD&gt;C1062&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Outpatient PPS&lt;/TD&gt;&lt;TD&gt;C1713-C9899&lt;/TD&gt;&lt;TD&gt;C1713&lt;/TD&gt;&lt;TD&gt;C9899&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Walking Aids and Attachments&lt;/TD&gt;&lt;TD&gt;E0100-E0159&lt;/TD&gt;&lt;TD&gt;E0100&lt;/TD&gt;&lt;TD&gt;E0159&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Sitz Bath/Equipment&lt;/TD&gt;&lt;TD&gt;E0160-E0162&lt;/TD&gt;&lt;TD&gt;E0160&lt;/TD&gt;&lt;TD&gt;E0162&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Commode Chair and Supplies&lt;/TD&gt;&lt;TD&gt;E0163-E0175&lt;/TD&gt;&lt;TD&gt;E0163&lt;/TD&gt;&lt;TD&gt;E0175&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to turn it into a list that includes all the values in between, single column, something like to include every value in every range:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9002&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9003&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9004&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9005&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1052&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1053&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1054&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1055&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1056&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1057&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1058&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1059&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1060&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1061&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1062&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;E0100&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;E0101&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;E0102&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My thought was create a list with all the values A0001-A9999, B0001-B9999, etc for every letter of the alphabet then compare it back to my range list and only keep those that fall within one of the ranges.&amp;nbsp; I was thinking a nested loop, the outside loop increments for the letter (runs 26&amp;nbsp;times), the inside loop increments for the numbers (runs 9999 times for each letter).&amp;nbsp;I can figure out a loop to create the values 0001-9999 but I can't figure out how to increment the letter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've tried converting the letter to ascii, hex, octal, so I can increment it as a number, &amp;nbsp;can't get any of that to work (example below).&amp;nbsp; It runs but it's not doing anything useful with the letter..the result is the same with ascii, hex, and octal.&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" color="#000080"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; Proc_List;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;ltr = &lt;/FONT&gt;&lt;FONT face="Courier New" color="#800080"&gt;'A'&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;put&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; ltr &lt;/FONT&gt;&lt;FONT face="Courier New" color="#008080"&gt;$ascii3.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; i = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT face="Courier New" color="#008080"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT face="Courier New" color="#0000ff"&gt;to&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT face="Courier New" color="#008080"&gt;9999&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT face="Courier New" color="#0000ff"&gt;by&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT face="Courier New" color="#008080"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;Proc = cat(ltr, put(i, &lt;/FONT&gt;&lt;FONT face="Courier New" color="#008080"&gt;z4.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;)); &lt;/FONT&gt;&lt;FONT face="Courier New" color="#008000"&gt;/* values are 1, 2.25, 4, ..., 16, 20.25, 25 */&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" color="#000080"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;Any ideas?&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Apr 2021 20:48:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732652#M228307</guid>
      <dc:creator>TXHHS</dc:creator>
      <dc:date>2021-04-09T20:48:55Z</dc:date>
    </item>
    <item>
      <title>Re: I need to turn a range of values (i.e. A0259-B3548) into a list of all values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732653#M228308</link>
      <description>&lt;P&gt;Why does your output show B9002 to B9005, and not any other values starting with B?&lt;/P&gt;</description>
      <pubDate>Fri, 09 Apr 2021 20:54:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732653#M228308</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2021-04-09T20:54:47Z</dc:date>
    </item>
    <item>
      <title>Re: I need to turn a range of values (i.e. A0259-B3548) into a list of all values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732654#M228309</link>
      <description>&lt;P&gt;My first question is why?&lt;BR /&gt;If you're trying to merge with a different table you can make the condition dynamic to search between two strings?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Otherwise:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Split your code from the number - get the start and end of the intervals&lt;/LI&gt;
&lt;LI&gt;Get the prefix for the codes&lt;/LI&gt;
&lt;LI&gt;Loop through the values and create the new code&lt;/LI&gt;
&lt;LI&gt;Output to a new line&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;

start = input(compress(startCode, , 'kd'), 8.);  /*1*/
end = input(compress(endCode, , 'kd'), 8.);  /*1*/
prefix = substr(startCode, 1, 1); /*2*/

do i=start to end; /*3*/
code = catt(prefix, put(i, z4.));
output; /*4*/
end;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/377585"&gt;@TXHHS&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have a list of ranges, data looks like this:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Enteral Formulas and Additives&lt;/TD&gt;
&lt;TD&gt;B4100-B4162&lt;/TD&gt;
&lt;TD&gt;B4100&lt;/TD&gt;
&lt;TD&gt;B4162&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Parenteral Solutions and Supplies&lt;/TD&gt;
&lt;TD&gt;B4164-B5200&lt;/TD&gt;
&lt;TD&gt;B4164&lt;/TD&gt;
&lt;TD&gt;B5200&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Nutrition Infusion Pumps and Supplies Not Otherwise Classified&lt;/TD&gt;
&lt;TD&gt;B9002-B9999&lt;/TD&gt;
&lt;TD&gt;B9002&lt;/TD&gt;
&lt;TD&gt;B9999&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Other Theraputic Procedures&lt;/TD&gt;
&lt;TD&gt;C1052-C1062&lt;/TD&gt;
&lt;TD&gt;C1052&lt;/TD&gt;
&lt;TD&gt;C1062&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Outpatient PPS&lt;/TD&gt;
&lt;TD&gt;C1713-C9899&lt;/TD&gt;
&lt;TD&gt;C1713&lt;/TD&gt;
&lt;TD&gt;C9899&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Walking Aids and Attachments&lt;/TD&gt;
&lt;TD&gt;E0100-E0159&lt;/TD&gt;
&lt;TD&gt;E0100&lt;/TD&gt;
&lt;TD&gt;E0159&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sitz Bath/Equipment&lt;/TD&gt;
&lt;TD&gt;E0160-E0162&lt;/TD&gt;
&lt;TD&gt;E0160&lt;/TD&gt;
&lt;TD&gt;E0162&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Commode Chair and Supplies&lt;/TD&gt;
&lt;TD&gt;E0163-E0175&lt;/TD&gt;
&lt;TD&gt;E0163&lt;/TD&gt;
&lt;TD&gt;E0175&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need to turn it into a list that includes all the values in between, single column, something like to include every value in every range:&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9002&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9003&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9004&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;B9005&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1052&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1053&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1054&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1055&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1056&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1057&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1058&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1059&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1060&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1061&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;C1062&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;E0100&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;E0101&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Verdana" color="#000000"&gt;E0102&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My thought was create a list with all the values A0001-A9999, B0001-B9999, etc for every letter of the alphabet then compare it back to my range list and only keep those that fall within one of the ranges.&amp;nbsp; I was thinking a nested loop, the outside loop increments for the letter (runs 26&amp;nbsp;times), the inside loop increments for the numbers (runs 9999 times for each letter).&amp;nbsp;I can figure out a loop to create the values 0001-9999 but I can't figure out how to increment the letter.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've tried converting the letter to ascii, hex, octal, so I can increment it as a number, &amp;nbsp;can't get any of that to work (example below).&amp;nbsp; It runs but it's not doing anything useful with the letter..the result is the same with ascii, hex, and octal.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color="#000080"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; Proc_List;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;ltr = &lt;/FONT&gt;&lt;FONT face="Courier New" color="#800080"&gt;'A'&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;put&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; ltr &lt;/FONT&gt;&lt;FONT face="Courier New" color="#008080"&gt;$ascii3.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; i = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT face="Courier New" color="#008080"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT face="Courier New" color="#0000ff"&gt;to&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT face="Courier New" color="#008080"&gt;9999&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT face="Courier New" color="#0000ff"&gt;by&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT face="Courier New" color="#008080"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Proc = cat(ltr, put(i, &lt;/FONT&gt;&lt;FONT face="Courier New" color="#008080"&gt;z4.&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;)); &lt;/FONT&gt;&lt;FONT face="Courier New" color="#008000"&gt;/* values are 1, 2.25, 4, ..., 16, 20.25, 25 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color="#0000ff"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color="#000080"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Any ideas?&lt;/FONT&gt;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Apr 2021 21:00:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732654#M228309</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-04-09T21:00:16Z</dc:date>
    </item>
    <item>
      <title>Re: I need to turn a range of values (i.e. A0259-B3548) into a list of all values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732657#M228311</link>
      <description>&lt;P&gt;You could hack SAS name list generation feature :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
length name $100 range $16;
input name &amp;amp; range;
datalines;
Enteral Formulas and Additives  B4100-B4162 B4100   B4162
Parenteral Solutions and Supplies   B4164-B5200 B4164   B5200
Nutrition Infusion Pumps and Supplies Not Otherwise Classified  B9002-B9009 B9002   B9009
Other Theraputic Procedures  C1052-C1062 C1052   C1062
Outpatient PPS  C1713-C1719 C1713   C1719
Walking Aids and Attachments    E0100-E0159 E0100   E0159
Sitz Bath/Equipment  E0160-E0162 E0160   E0162
Commode Chair and Supplies  E0163-E0175 E0163   E0175
;

filename arrays temp;
data _null_;
file arrays;
set have;
arrayName = cats("x", _n_);
str = catx(" ", "array", arrayName, "{*}", range, ";");
put str;
run;

data want(keep=name);
%include arrays;
array all _numeric_;
do i = 1 to dim(all);
    name = vname(all{i});
    output;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 09 Apr 2021 21:41:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732657#M228311</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2021-04-09T21:41:07Z</dc:date>
    </item>
    <item>
      <title>Re: I need to turn a range of values (i.e. A0259-B3548) into a list of all values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732672#M228323</link>
      <description>&lt;P&gt;Why?&amp;nbsp; All of the possible numeric suffixes in those ranges will include codes that are not valid HCPCS codes.&lt;/P&gt;
&lt;P&gt;Just merge the list with a list of valid codes and pick the ones that fall between the two codes.&lt;/P&gt;
&lt;P&gt;Let's assume the table you are showing is named HAVE and last two variables are named LOW and HIGH. So if your dictionary table of all valid codes is named HCPCS then just join them:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want as
select a.*,b.code
from have a
left join hcpcs b
on b.code between a.low and a.high
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 10 Apr 2021 02:58:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/I-need-to-turn-a-range-of-values-i-e-A0259-B3548-into-a-list-of/m-p/732672#M228323</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-04-10T02:58:20Z</dc:date>
    </item>
  </channel>
</rss>

