<?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: Extracting numbers from a string variable with varying lengths in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639963#M78244</link>
    <description>&lt;P&gt;There are probably more elegant ways to do this but this seems to work:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input string $;
  cards; 
1
-1-3
456
-6-7-8
;
run;

data want;
  keep string var1 - var3;
  set have;
  array vars var1 - var3;
  start = 1;
  do i = 1 to 3;
    pos = anydigit(string, start);
    if pos then do;
      if pos = start then vars(i) = input(substr(string, start,1), 1.); 
      else vars(i) = input(substr(string, start, 2), 2.);
      start = pos + 1;
    end;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 15 Apr 2020 04:58:11 GMT</pubDate>
    <dc:creator>SASKiwi</dc:creator>
    <dc:date>2020-04-15T04:58:11Z</dc:date>
    <item>
      <title>Extracting numbers from a string variable with varying lengths</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639945#M78241</link>
      <description>&lt;P&gt;Hello everybody,&lt;/P&gt;&lt;P&gt;I have a string variable with varying lengths and values go like this -&amp;nbsp;&lt;/P&gt;&lt;P&gt;Var1&lt;/P&gt;&lt;P&gt;1&lt;/P&gt;&lt;P&gt;-1-3&lt;/P&gt;&lt;P&gt;456&lt;/P&gt;&lt;P&gt;-6-7-8&lt;/P&gt;&lt;P&gt;What I am trying to achieve right here is to extract the number along with their signs and create a new variable for each integer.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the layout I am hoping to look at:&lt;/P&gt;&lt;P&gt;var1 &amp;nbsp; var2 &amp;nbsp; &amp;nbsp;var 3&lt;/P&gt;&lt;P&gt;&amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;-1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6&lt;/P&gt;&lt;P&gt;-6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-7 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-8&lt;/P&gt;&lt;P&gt;Any help with this would be greatly appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2020 02:45:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639945#M78241</guid>
      <dc:creator>Surendra1991</dc:creator>
      <dc:date>2020-04-15T02:45:05Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting numbers from a string variable with varying lengths</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639947#M78242</link>
      <description>are they all single digits?</description>
      <pubDate>Wed, 15 Apr 2020 02:49:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639947#M78242</guid>
      <dc:creator>sustagens</dc:creator>
      <dc:date>2020-04-15T02:49:27Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting numbers from a string variable with varying lengths</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639948#M78243</link>
      <description>Yes, they are all single digits</description>
      <pubDate>Wed, 15 Apr 2020 02:54:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639948#M78243</guid>
      <dc:creator>Surendra1991</dc:creator>
      <dc:date>2020-04-15T02:54:34Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting numbers from a string variable with varying lengths</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639963#M78244</link>
      <description>&lt;P&gt;There are probably more elegant ways to do this but this seems to work:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input string $;
  cards; 
1
-1-3
456
-6-7-8
;
run;

data want;
  keep string var1 - var3;
  set have;
  array vars var1 - var3;
  start = 1;
  do i = 1 to 3;
    pos = anydigit(string, start);
    if pos then do;
      if pos = start then vars(i) = input(substr(string, start,1), 1.); 
      else vars(i) = input(substr(string, start, 2), 2.);
      start = pos + 1;
    end;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 15 Apr 2020 04:58:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639963#M78244</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2020-04-15T04:58:11Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting numbers from a string variable with varying lengths</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639966#M78245</link>
      <description>&lt;P&gt;Wonderful! The code worked like a miracle. Thank you very much!&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2020 05:10:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/639966#M78245</guid>
      <dc:creator>Surendra1991</dc:creator>
      <dc:date>2020-04-15T05:10:31Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting numbers from a string variable with varying lengths</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/640064#M78246</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input string $;
  cards; 
1
-1-3
456
-6-7-8
;
run;
data temp;
 set have;
 id+1;
 temp=prxchange('s/(-?\d)/ \1 /',-1,string);
 do i=1 to countw(temp,' ');
  value=scan(temp,i,' ');output;
 end;
 keep id value;
run;
proc transpose data=temp out=want;
by id;
var value;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 15 Apr 2020 11:03:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Extracting-numbers-from-a-string-variable-with-varying-lengths/m-p/640064#M78246</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2020-04-15T11:03:18Z</dc:date>
    </item>
  </channel>
</rss>

