<?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: Extract all numerics between a range in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510858#M2040</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input var1$   var2 $;
cards;
a          305
a          306-308
b          400
b          401-405
;

/*if numeric is the  required output*/
data want;
set have;
do n=input(scan(var2,1,'-'),8.) to input(scan(var2,-1,'-'),8.);
output;
end;
rename n=var2;
drop var2;
run;
/*if char is the  required output*/
data want;
set have;
do _n_=input(scan(var2,1,'-'),8.) to input(scan(var2,-1,'-'),8.);
var2=put(_n_,best8. -l);
output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 06 Nov 2018 19:07:54 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2018-11-06T19:07:54Z</dc:date>
    <item>
      <title>Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510731#M2018</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I am working on SAS Code that will allow me to de-range a data set. I need to create a list that has the mapping from var1 to var2. I have done some set up work and I now have a data set that looks like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var1:&amp;nbsp;&amp;nbsp;&amp;nbsp;var2 (character):&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 305&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 306-308&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;400&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;401-405&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what I need is an output that looks like this&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var1:&amp;nbsp;&amp;nbsp;&amp;nbsp;var2:&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 305&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 306&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;307&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;308&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;400&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;401&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;402&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 403&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 404&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;405....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hopefully this makes sense!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Nov 2018 13:31:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510731#M2018</guid>
      <dc:creator>Codyalve</dc:creator>
      <dc:date>2018-11-06T13:31:08Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510738#M2019</link>
      <description>&lt;P&gt;In the final result, do you want VAR2 to remain character?&lt;/P&gt;</description>
      <pubDate>Tue, 06 Nov 2018 13:47:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510738#M2019</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-11-06T13:47:15Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510740#M2020</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data want;
    length var2 $7;
 &amp;nbsp; &amp;nbsp;infile datalines;
    input var1 $ var2 $;
&amp;nbsp; &amp;nbsp;
     if index(var2,'-') = 0 then output;
     else do;
         v1 = scan(var1,1,'-');
         v2 = scan(var2,2,'-');
         do varx = v1 to v2;
              var2 = varx;
              output;
         end;
     drop v1 v2 varx;
datalines;
a          305
a          306-308
b          400
b          401-405
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 06 Nov 2018 13:50:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510740#M2020</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-11-06T13:50:07Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510745#M2022</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input var1$   var2 $;
cards;
a          305
a          306-308
b          400
b          401-405
;

data want(rename=(new=var2));
set have;
var3=input(scan(var2,2,'-'),best.);
_var2=input(scan(var2,1,'-'),best.);
if var3 ne . then do i = _var2 to var3;
new=strip(put(i,best.));
output;
end;
drop var2 i;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 06 Nov 2018 13:58:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510745#M2022</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2018-11-06T13:58:11Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510746#M2023</link>
      <description>&lt;P&gt;You may need a do loop,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input var1 :$8. var2:$8.;
datalines;
a 305
a 306-308
b 400
b 401-405
;
run;

data want(drop=i);
set have;
do i=input(scan(var2,1,'-','m'),$3.) to ifn(countw(var2,'-')&amp;gt;1,input(scan(var2,2,'-','m'),$3.),input(scan(var2,1,'-','m'),$3.));
var2=put(i,3.);
output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 06 Nov 2018 13:53:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510746#M2023</guid>
      <dc:creator>SuryaKiran</dc:creator>
      <dc:date>2018-11-06T13:53:24Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510768#M2024</link>
      <description>&lt;P&gt;Are these always 3 digit numbers?&lt;/P&gt;</description>
      <pubDate>Tue, 06 Nov 2018 14:59:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510768#M2024</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-11-06T14:59:51Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510778#M2026</link>
      <description>This works very well! Thank you all so much for the quick responses. These&lt;BR /&gt;are all good solutions &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 06 Nov 2018 15:19:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510778#M2026</guid>
      <dc:creator>Codyalve</dc:creator>
      <dc:date>2018-11-06T15:19:04Z</dc:date>
    </item>
    <item>
      <title>Re: Extract all numerics between a range</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510858#M2040</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input var1$   var2 $;
cards;
a          305
a          306-308
b          400
b          401-405
;

/*if numeric is the  required output*/
data want;
set have;
do n=input(scan(var2,1,'-'),8.) to input(scan(var2,-1,'-'),8.);
output;
end;
rename n=var2;
drop var2;
run;
/*if char is the  required output*/
data want;
set have;
do _n_=input(scan(var2,1,'-'),8.) to input(scan(var2,-1,'-'),8.);
var2=put(_n_,best8. -l);
output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 06 Nov 2018 19:07:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Extract-all-numerics-between-a-range/m-p/510858#M2040</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-11-06T19:07:54Z</dc:date>
    </item>
  </channel>
</rss>

