<?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: Spliting a string into variable in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196084#M49047</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is probably an easier way to do this, but it's late and I'm tired:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat string $50.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input String;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data want (drop=string i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([0-9])([,A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/(,)([0-9A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([0-9A-Za-z])(,)/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([A-Za-z])([0-9])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([A-Za-z])([A-Za-z])/$1_1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; array var(14) $;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while(scan(string,i,'_') ne '');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var(i)=scan(string,i,'_');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Apr 2015 05:27:13 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2015-04-15T05:27:13Z</dc:date>
    <item>
      <title>Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196082#M49045</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I want to split the below string in to different variables and when there are two consecutive characters then I want to insert 1. I tried putting characters and numbers in different variables but that's not giving what I want. Please help me &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output:&lt;/P&gt;&lt;P&gt;var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var14&lt;/P&gt;&lt;P&gt;28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L&lt;/P&gt;&lt;P&gt;28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O&lt;/P&gt;&lt;P&gt;46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&lt;/P&gt;&lt;P&gt;30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 03:12:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196082#M49045</guid>
      <dc:creator>BharathBandi</dc:creator>
      <dc:date>2015-04-15T03:12:41Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196083#M49046</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input string:$100.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;var1=substr(string,1,2);&lt;/P&gt;&lt;P&gt;var2=substr(string,3,1);&lt;/P&gt;&lt;P&gt;var3=substr(string,4,2);&lt;/P&gt;&lt;P&gt;array vas(*) $ var4-var14;&lt;/P&gt;&lt;P&gt;do i = 1 to dim(vas);&lt;/P&gt;&lt;P&gt;vas(i)=substr(compress(string),i+5,1);&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jag&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 03:54:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196083#M49046</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2015-04-15T03:54:49Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196084#M49047</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is probably an easier way to do this, but it's late and I'm tired:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat string $50.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input String;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data want (drop=string i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([0-9])([,A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/(,)([0-9A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([0-9A-Za-z])(,)/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([A-Za-z])([0-9])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([A-Za-z])([A-Za-z])/$1_1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; array var(14) $;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while(scan(string,i,'_') ne '');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var(i)=scan(string,i,'_');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 05:27:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196084#M49047</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2015-04-15T05:27:13Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196085#M49048</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you &lt;A __default_attr="149594" __jive_macro_name="user" class="jive_macro jive_macro_user" data-objecttype="3" href="https://communities.sas.com/"&gt;&lt;/A&gt; your code worked correct for me, but if there is no number in-front of character then I need 1.&lt;/P&gt;&lt;P&gt;example:After O theres no number, so in this case I need 1 then B.&lt;/P&gt;&lt;P&gt;For the first string : &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px; background-color: #ffffff;"&gt;28,16OB4N7L8U4L&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;output:&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #f8f8f8;"&gt;var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var14&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #f8f8f8;"&gt;28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="text-decoration: underline;"&gt;&lt;EM&gt; &lt;STRONG&gt; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B &lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #f8f8f8;"&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #f8f8f8;"&gt;Hope I'm clear.&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #f8f8f8;"&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #f8f8f8;"&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 06:11:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196085#M49048</guid>
      <dc:creator>BharathBandi</dc:creator>
      <dc:date>2015-04-15T06:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196086#M49049</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Something like:&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat string $50.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input String;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want (keep=old_string final_string);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length id1-id3 old_string final_string $20;&lt;/P&gt;&lt;P&gt;&amp;nbsp; old_string=string;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array var{40} $20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array id{3} $20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Address the first parts */&lt;/P&gt;&lt;P&gt;&amp;nbsp; id1=substr(string,1,2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; id2=substr(string,3,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; id3=substr(string,4,2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=substr(string,6);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Now we have the data left to process loop through each character */&lt;/P&gt;&lt;P&gt;&amp;nbsp; tmp_count=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to 40 by 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var{i}=substr(string,tmp_count,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp_count=tmp_count+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Additional step to insert 1's where necessary */&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to 40 by 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if anyalpha(var{i}) and anyalpha(var{i+2}) then var{i+1}="1";&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Create final complete string */&lt;/P&gt;&lt;P&gt;&amp;nbsp; final_string=cats(of id{*})||cats(of var{*});&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 09:02:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196086#M49049</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-04-15T09:02:05Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196087#M49050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you sure you ran my code? I think that is exactly what the code did!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 12:52:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196087#M49050</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2015-04-15T12:52:45Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196088#M49051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;


data have;
input string $40.;
cards;
28,16OB4N7L8U4L
28,12O8B20O
46,12C
30,14CB12C4N2C
;
run;
data temp;
 set have;
 string=prxchange('s/([A-Z])([A-Z])/\11\2/i',-1,string);
 pid=prxparse('/\d+|\W+|[a-z]/i');
 n+1;start=1;stop=length(string);
 call prxnext(pid,start,stop,string,position,length);
 do while(position gt 0);
&amp;nbsp; found=substr(string,position,length);output;
&amp;nbsp;&amp;nbsp; call prxnext(pid,start,stop,string,position,length);
 end;
 drop pid start stop position length string ;
run;
proc transpose data=temp out=want(drop=_name_);
 by n;
 var found;
run;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 14:06:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196088#M49051</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-04-15T14:06:30Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196089#M49052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Xia,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FWIW, your code appears to do the same thing that my code does, but requires slightly more cpu and real time than the code I had proposed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The test I ran to compare the two was:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have (drop=i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; input string $40.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1to 100000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data temp;&lt;/P&gt;&lt;P&gt; set have;&lt;/P&gt;&lt;P&gt; string=prxchange('s/([A-Z])([A-Z])/\11\2/i',-1,string);&lt;/P&gt;&lt;P&gt; pid=prxparse('/\d+|\W+|[a-z]/i');&lt;/P&gt;&lt;P&gt; n+1;start=1;stop=length(string);&lt;/P&gt;&lt;P&gt; call prxnext(pid,start,stop,string,position,length);&lt;/P&gt;&lt;P&gt; do while(position gt 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; found=substr(string,position,length);output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call prxnext(pid,start,stop,string,position,length);&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; drop pid start stop position length string ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=temp out=want_xia(drop=_name_ n);&lt;/P&gt;&lt;P&gt; by n;&lt;/P&gt;&lt;P&gt; var found;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want_art (drop=string i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([0-9])([,A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/(,)([0-9A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([0-9A-Za-z])(,)/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([A-Za-z])([0-9])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; string=prxchange('s/([A-Za-z])([A-Za-z])/$1_1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;&amp;nbsp; array var(14) $;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while(scan(string,i,'_') ne '');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var(i)=scan(string,i,'_');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 14:47:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196089#M49052</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2015-04-15T14:47:22Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196090#M49053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data foo;&lt;/P&gt;&lt;P&gt;length foobar $ 32;&lt;/P&gt;&lt;P&gt;input foobar;&lt;/P&gt;&lt;P&gt;array v[14] $ 2;&lt;/P&gt;&lt;P&gt;v1 = scan(foobar, 1, ',');&lt;/P&gt;&lt;P&gt;v2 = ',';&lt;/P&gt;&lt;P&gt;bar = scan(foobar, 2, ',');&lt;/P&gt;&lt;P&gt;bar = prxchange('s/([a-z])([a-z])/\11\2/io', -1, bar);&lt;/P&gt;&lt;P&gt;bar = prxchange('s/((?:[a-z]+)|(?:[0-9]+))(?!\s)/\1_/io', -1, bar);&lt;/P&gt;&lt;P&gt;do i=3 to dim(v) by 1 while(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; v&lt;I&gt;=scan(bar, i-2, '_');&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if missing(v&lt;I&gt;) then leave;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;keep v:;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;28,16OB4N7L8U4L&lt;/P&gt;&lt;P&gt;28,12O8B20O&lt;/P&gt;&lt;P&gt;46,12C&lt;/P&gt;&lt;P&gt;30,14CB12C4N2C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 15:28:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196090#M49053</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2015-04-15T15:28:33Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196091#M49054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Matt: Not more efficient! Took the same time as my code and will only work, as is, if the first two fields always contain a number followed by a comma, and none of the numbers require more than 2 characters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Obviously those would be easy to change, but no improvement in performance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 16:23:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196091#M49054</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2015-04-15T16:23:00Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196092#M49055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Okay Art, I will change it slightly to make it more efficient by breaking apart second prx into two, and why not, lets write it in ds2 also:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2083&amp;nbsp; data x.have (drop=i);&lt;/P&gt;&lt;P&gt;2084&amp;nbsp;&amp;nbsp;&amp;nbsp; input string $40.;&lt;/P&gt;&lt;P&gt;2085&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1to 1e6;&lt;/P&gt;&lt;P&gt;2086&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;2087&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;2088&amp;nbsp;&amp;nbsp;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The data set X.HAVE has 4000000 observations and 1 variables.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.14 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.14 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2093&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;2094&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;2095&lt;/P&gt;&lt;P&gt;2096&amp;nbsp; data want_fe;&lt;/P&gt;&lt;P&gt;2097&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set x.have;&lt;/P&gt;&lt;P&gt;2098&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array v[14] $ 2;&lt;/P&gt;&lt;P&gt;2099&amp;nbsp; v1 = scan(string, 1, ',');&lt;/P&gt;&lt;P&gt;2100&amp;nbsp; v2 = ',';&lt;/P&gt;&lt;P&gt;2101&amp;nbsp; bar = scan(string, 2, ',');&lt;/P&gt;&lt;P&gt;2102&amp;nbsp; bar = prxchange('s/([a-z])([a-z])/\11\2/io', -1, bar);&lt;/P&gt;&lt;P&gt;2103&amp;nbsp; bar = prxchange('s/([a-z]+)(?!\s)/\1_/io', -1, bar);&lt;/P&gt;&lt;P&gt;2104&amp;nbsp; bar = prxchange('s/([0-9]+)/\1_/o', -1, bar);&lt;/P&gt;&lt;P&gt;2105&amp;nbsp; do i=3 to dim(v) by 1 while(1);&lt;/P&gt;&lt;P&gt;2106&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v&lt;I&gt;=scan(bar, i-2, '_');&lt;/I&gt;&lt;/P&gt;&lt;P&gt;2107&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if missing(v&lt;I&gt;) then leave;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;2108&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;2109&amp;nbsp; keep v:;&lt;/P&gt;&lt;P&gt;2110&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: There were 4000000 observations read from the data set X.HAVE.&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.WANT_FE has 4000000 observations and 14 variables.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15.04 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15.06 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2111&lt;/P&gt;&lt;P&gt;2112&amp;nbsp; data want_art (drop=string i);&lt;/P&gt;&lt;P&gt;2113&amp;nbsp;&amp;nbsp;&amp;nbsp; set x.have;&lt;/P&gt;&lt;P&gt;2114&amp;nbsp;&amp;nbsp;&amp;nbsp; string=prxchange('s/([0-9])([,A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;2115&amp;nbsp;&amp;nbsp;&amp;nbsp; string=prxchange('s/(,)([0-9A-Za-z])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;2116&amp;nbsp;&amp;nbsp;&amp;nbsp; string=prxchange('s/([0-9A-Za-z])(,)/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;2117&amp;nbsp;&amp;nbsp;&amp;nbsp; string=prxchange('s/([A-Za-z])([0-9])/$1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;2118&amp;nbsp;&amp;nbsp;&amp;nbsp; string=prxchange('s/([A-Za-z])([A-Za-z])/$1_1_$2/', -1, STRING);&lt;/P&gt;&lt;P&gt;2119&amp;nbsp;&amp;nbsp;&amp;nbsp; array var(14) $;&lt;/P&gt;&lt;P&gt;NOTE: The array var has the same name as a SAS-supplied or user-defined function.&amp;nbsp; Parentheses&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; following this name are treated as array references and not function references.&lt;/P&gt;&lt;P&gt;2120&amp;nbsp;&amp;nbsp;&amp;nbsp; i=1;&lt;/P&gt;&lt;P&gt;2121&amp;nbsp;&amp;nbsp;&amp;nbsp; do while(scan(string,i,'_') ne '');&lt;/P&gt;&lt;P&gt;2122&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var(i)=scan(string,i,'_');&lt;/P&gt;&lt;P&gt;2123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/P&gt;&lt;P&gt;2124&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;2125&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: There were 4000000 observations read from the data set X.HAVE.&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.WANT_ART has 4000000 observations and 14 variables.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.46 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.39 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2126&lt;/P&gt;&lt;P&gt;2127&amp;nbsp; proc ds2;&lt;/P&gt;&lt;P&gt;2128&lt;/P&gt;&lt;P&gt;2129&amp;nbsp; thread break_string / overwrite=yes;&lt;/P&gt;&lt;P&gt;2130&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vararray nchar(2) v[14];&lt;/P&gt;&lt;P&gt;2131&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep v:;&lt;/P&gt;&lt;P&gt;2132&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&lt;/P&gt;&lt;P&gt;2133&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare nchar(32) foo;&lt;/P&gt;&lt;P&gt;2134&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare int i;&lt;/P&gt;&lt;P&gt;2135&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set x.have;&lt;/P&gt;&lt;P&gt;2136&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[1]=scan(string, 1, ',');&lt;/P&gt;&lt;P&gt;2137&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[2]=',';&lt;/P&gt;&lt;P&gt;2138&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo=scan(string, 2, ',');&lt;/P&gt;&lt;P&gt;2139&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo=prxchange('s/([a-z])([a-z])/\11\2/io', -1, foo);&lt;/P&gt;&lt;P&gt;2140&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo=prxchange('s/([a-z]+)(?!\s)/\1_/io', -1, foo);&lt;/P&gt;&lt;P&gt;2141&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo=prxchange('s/([0-9]+)/\1_/o', -1, foo);&lt;/P&gt;&lt;P&gt;2142&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=3 to dim(v);&lt;/P&gt;&lt;P&gt;2143&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v&lt;I&gt;=scan(foo, i-2, '_');&lt;/I&gt;&lt;/P&gt;&lt;P&gt;2144&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if missing(v&lt;I&gt;) then leave;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;2145&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;2146&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;2147&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endthread;&lt;/P&gt;&lt;P&gt;2148&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;NOTE: Created thread break_string in data set work.break_string.&lt;/P&gt;&lt;P&gt;NOTE: Execution succeeded. No rows affected.&lt;/P&gt;&lt;P&gt;2149&lt;/P&gt;&lt;P&gt;2150&amp;nbsp; data want_feds2 (overwrite=yes);&lt;/P&gt;&lt;P&gt;2151&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare thread break_string bsthread;&lt;/P&gt;&lt;P&gt;2152&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&lt;/P&gt;&lt;P&gt;2153&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set from bsthread threads=4;&lt;/P&gt;&lt;P&gt;2154&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;2155&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddata;&lt;/P&gt;&lt;P&gt;2156&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;NOTE: BASE driver, creation of a NCHAR column has been requested, the table encoding is set to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UTF-8.&lt;/P&gt;&lt;P&gt;NOTE: Execution succeeded. 4000000 rows affected.&lt;/P&gt;&lt;P&gt;2157&lt;/P&gt;&lt;P&gt;2158&amp;nbsp; quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: PROCEDURE DS2 used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.11 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20.57 seconds&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 18:47:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196092#M49055</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2015-04-15T18:47:56Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196093#M49056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank You Arthur, your code worked fine.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;But I just realized that when string has no number after comma it is not giving value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;example :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;35,NB15O4L4NB7O&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Desired Output:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;var1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var16&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Apr 2015 21:32:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196093#M49056</guid>
      <dc:creator>BharathBandi</dc:creator>
      <dc:date>2015-04-15T21:32:03Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196094#M49057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yeah. You are right ,Arthur.T&amp;nbsp; . I believe that is because you pre-define the number of variables . How do you know that would have to be fourteen ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Apr 2015 11:47:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196094#M49057</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-04-16T11:47:36Z</dc:date>
    </item>
    <item>
      <title>Re: Spliting a string into variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196095#M49058</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Xia: Agreed! I hard coded it based on my interpretation of OP's problem statement.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Apr 2015 13:27:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Spliting-a-string-into-variable/m-p/196095#M49058</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2015-04-16T13:27:29Z</dc:date>
    </item>
  </channel>
</rss>

