<?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: separating a string variable into different variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538170#M148133</link>
    <description>&lt;P&gt;No need for macro&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
str='123451122312390';
output;
str='1234690876';
output;
run;

 
data want;
set have;
array want(9) $5; /*increase your array subscript to whatever value you want*/
i=0;
do p=1 by 5 while(p&amp;lt;length(str));
i+1;
want(i)=substr(str,p,5);
end;
drop p i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 25 Feb 2019 03:28:09 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2019-02-25T03:28:09Z</dc:date>
    <item>
      <title>separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538167#M148130</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;Although there are similar questions in the community their answers didn't work for me, maybe I did something wrong. I have a string data includes numbers. I'd like to separate them to 5 digits numbers. For example,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have&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; &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; Want&amp;nbsp;&lt;/P&gt;
&lt;P&gt;O_ID&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; O_ID1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; O_D2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;O_ID3&lt;/P&gt;
&lt;P&gt;123451122312390&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12345&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 11223&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12390&lt;/P&gt;
&lt;P&gt;1234690876&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; 12346&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 90876&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'll appreciate for&amp;nbsp; any comment, any help&lt;/P&gt;</description>
      <pubDate>Mon, 25 Feb 2019 02:48:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538167#M148130</guid>
      <dc:creator>dustychair</dc:creator>
      <dc:date>2019-02-25T02:48:19Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538168#M148131</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
str='123451122312390';
output;
str='1234690876';
output;
run;

data want;
set have;
array want(9) $5; /*increase your array subscript to whatever value you want*/
call pokelong(str,addrlong(want1),vlength(str));
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Feb 2019 03:19:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538168#M148131</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-02-25T03:19:34Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538169#M148132</link>
      <description>&lt;P&gt;The basic idea is&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ; 
length oid $50.;
oid='123451122312390'    ;output;
oid='1234690876'          ;output;
run;

data want1;
	set have;
	 oid1= substr(oid,1,5);
	 oid2=substr(oid,6,5);
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Or in a simple macro&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro split;
 data want2;
 set have;
	%do i = 1 %to 100 %by 5 ; 
	%put &amp;amp;i;
	oid&amp;amp;i = substr(oid, &amp;amp;i , 5);
	%end;
 run;
 %mend split;
 %split;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;you could enhance the macro by working out the (maximum length / 5) of your initial variable and therefore how many new variables you would need to create .&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Feb 2019 03:19:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538169#M148132</guid>
      <dc:creator>34reqrwe</dc:creator>
      <dc:date>2019-02-25T03:19:53Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538170#M148133</link>
      <description>&lt;P&gt;No need for macro&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
str='123451122312390';
output;
str='1234690876';
output;
run;

 
data want;
set have;
array want(9) $5; /*increase your array subscript to whatever value you want*/
i=0;
do p=1 by 5 while(p&amp;lt;length(str));
i+1;
want(i)=substr(str,p,5);
end;
drop p i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Feb 2019 03:28:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538170#M148133</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-02-25T03:28:09Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538173#M148135</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
str='123451122312390';
output;
str='1234690876';
output;
run;

data want;
set have;
array want(9) $5; /*increase your array subscript to whatever value you want*/
j=0;
do i=1 to length(str);
k=mod(i,5);
if k=1 then do;
j+1;
want(j)=substr(str,i,5);
end;
end;
drop i j k;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Feb 2019 03:51:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538173#M148135</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-02-25T03:51:11Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538211#M148147</link>
      <description>&lt;P&gt;This code gives the expected result, I have used some test data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input o_id;
format o_id best32.;
cards;
123451122312390
12345678909876
123456789012345678901
1111111111
;
run;

proc sql noprint;
select max(length(strip(put(o_id,32. -L)))) into :max_len from have;
quit;

%let var_length=5;
%let no_of_cols=%eval(&amp;amp;max_len. / &amp;amp;var_length. + 1);

data want(drop=i init);
set have;
array o_id_[&amp;amp;no_of_cols.];
init=1;
do i=1 to &amp;amp;no_of_cols.;
	if i ne 1 then init=(i-1)*&amp;amp;var_length.;
	o_id_[i]=substr(strip(put(o_id,32. -L)),init,&amp;amp;var_length.);
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Please let us know if it worked for you.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Feb 2019 08:44:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538211#M148147</guid>
      <dc:creator>Satish_Parida</dc:creator>
      <dc:date>2019-02-25T08:44:20Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538252#M148159</link>
      <description>&lt;PRE&gt;data have;
input o_id $22.;
cards;
123451122312390
12345678909876
123456789012345678901
1111111111
;
run;
data temp(index=(o_id));
 set have;
 length _id $ 200;
 _id=o_id;
 do i=1 to length(_id) by 5;
  temp=substr(_id,i,5);
  if not missing(temp) then output;
 end;
drop _id i;
run;
proc transpose data=temp out=want;
by o_id;
var temp;
run;&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Feb 2019 12:53:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538252#M148159</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-02-25T12:53:16Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538260#M148161</link>
      <description>&lt;P&gt;or this way&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input o_id $22.;
  cards;
123451122312390
12345678909876
123456789012345678901
1111111111
;
run;

data _null_;
  if 0 then set have(keep=o_id);
  call symputx('n_vars',ceil(vlength(o_id)/5));
  stop;
run;
%put &amp;amp;=n_vars;

data want(drop=_:);
  set have;
  array o_id_ {&amp;amp;n_vars} $5;
  do _i=1 to &amp;amp;n_vars;
    o_id_[_i]=substrn(o_id,(_i-1)*5+1,5);
    if missing(o_id_[_i]) then leave;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Feb 2019 14:09:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538260#M148161</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-02-25T14:09:08Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538282#M148165</link>
      <description>&lt;P&gt;I propose this solution:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
input O_IDO best32.;
format O_IDO best32.;
cards;
123451122312390
1234690876
123469087
; run;

data test1(drop=i);
set test;
i=1;
do while(i&amp;lt;=length(compress(put(O_IDO,best32.))));
O_ID=substr(compress(put(O_IDO,best32.)),i,5);
i+5;
output;
end;
run;

proc sort data=test1 ; by O_IDO; run;

proc transpose data=test1 out=test2(drop=_name_) prefix=O_OD;by O_IDO ; var O_ID; run; &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Feb 2019 14:48:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538282#M148165</guid>
      <dc:creator>mansour_ib_sas</dc:creator>
      <dc:date>2019-02-25T14:48:52Z</dc:date>
    </item>
    <item>
      <title>Re: separating a string variable into different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538313#M148177</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Thank your for your response. Your code worked.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sincerely,&lt;/P&gt;</description>
      <pubDate>Mon, 25 Feb 2019 16:00:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separating-a-string-variable-into-different-variables/m-p/538313#M148177</guid>
      <dc:creator>dustychair</dc:creator>
      <dc:date>2019-02-25T16:00:06Z</dc:date>
    </item>
  </channel>
</rss>

