<?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 serparate a range of string variables into multiple varialbes using array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384392#M91776</link>
    <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is it possible to change a range of variables (namepers1-namepers3)&amp;nbsp; currently a character string spearated by delimiter "/"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was able to do it for one variable at a time...but for efficiency, is there a way to do Namepers1-namepsers3 in one datastep?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the values in each variable are the same character string format...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data rr.namepers2006;&lt;BR /&gt;set sar_raw.rr2006 (keep=namepers1-namepers3) ;&lt;BR /&gt;array new_var(*)$ last rank grade;&lt;BR /&gt;i=1;&lt;BR /&gt;do while(scan(namepers1, i, "/") ne "");&lt;BR /&gt;new_var(i) =scan(namepers1, i, "/");&lt;BR /&gt;i+1;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;thank you!&lt;/P&gt;
&lt;DIV class="lia-quilt-column lia-quilt-column-20 lia-quilt-column-right lia-quilt-column-main-right"&gt;
&lt;DIV class="lia-quilt-column-alley lia-quilt-column-alley-right"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 31 Jul 2017 19:40:09 GMT</pubDate>
    <dc:creator>jenim514</dc:creator>
    <dc:date>2017-07-31T19:40:09Z</dc:date>
    <item>
      <title>serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384392#M91776</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is it possible to change a range of variables (namepers1-namepers3)&amp;nbsp; currently a character string spearated by delimiter "/"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was able to do it for one variable at a time...but for efficiency, is there a way to do Namepers1-namepsers3 in one datastep?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the values in each variable are the same character string format...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data rr.namepers2006;&lt;BR /&gt;set sar_raw.rr2006 (keep=namepers1-namepers3) ;&lt;BR /&gt;array new_var(*)$ last rank grade;&lt;BR /&gt;i=1;&lt;BR /&gt;do while(scan(namepers1, i, "/") ne "");&lt;BR /&gt;new_var(i) =scan(namepers1, i, "/");&lt;BR /&gt;i+1;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;thank you!&lt;/P&gt;
&lt;DIV class="lia-quilt-column lia-quilt-column-20 lia-quilt-column-right lia-quilt-column-main-right"&gt;
&lt;DIV class="lia-quilt-column-alley lia-quilt-column-alley-right"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2017 19:40:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384392#M91776</guid>
      <dc:creator>jenim514</dc:creator>
      <dc:date>2017-07-31T19:40:09Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384395#M91777</link>
      <description>&lt;P&gt;although I'm not 100% sure I understand the problem, I believe the CATX function does what you want&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but show us an example of the input, and what the output will look like for this situation&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2017 19:06:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384395#M91777</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2017-07-31T19:06:15Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384403#M91779</link>
      <description>&lt;P&gt;current data looks like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="342"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="108"&gt;namepers1&lt;/TD&gt;
&lt;TD width="119"&gt;namepers2&lt;/TD&gt;
&lt;TD width="115"&gt;namepers3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sample J ./0-3/ LT&lt;/TD&gt;
&lt;TD&gt;Sample A ./0-1/ LT&lt;/TD&gt;
&lt;TD&gt;Sample E ./0-4/ CDR&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want new colums to look like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 432pt;" width="576" cellspacing="0" cellpadding="0" border="0"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" width="64" span="9" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl65" style="height: 15.0pt; width: 48pt;" width="64" height="20"&gt;last1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;grade1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;rank1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;last2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;grade2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;rank2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;last3&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;grade3&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;rank3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD class="xl65" style="height: 15.0pt;" height="20"&gt;Sample J.&lt;/TD&gt;
&lt;TD class="xl65"&gt;0-3&lt;/TD&gt;
&lt;TD class="xl65"&gt;LT&lt;/TD&gt;
&lt;TD class="xl65"&gt;Sample A.&lt;/TD&gt;
&lt;TD class="xl65"&gt;0-1&lt;/TD&gt;
&lt;TD class="xl65"&gt;LT&lt;/TD&gt;
&lt;TD class="xl65"&gt;Sample E.&lt;/TD&gt;
&lt;TD class="xl65"&gt;0-4&lt;/TD&gt;
&lt;TD class="xl65"&gt;CDR&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Mon, 31 Jul 2017 19:32:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384403#M91779</guid>
      <dc:creator>jenim514</dc:creator>
      <dc:date>2017-07-31T19:32:00Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384408#M91784</link>
      <description>&lt;P&gt;You can use the SCAN function to separate the variables into "words" where the delimiter is a slash.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You'd want to put this into a data step loop, probably with namepers1 through namepers8 in an array.&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2017 19:40:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384408#M91784</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2017-07-31T19:40:17Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384416#M91787</link>
      <description>&lt;P&gt;Does the number of items vary, or is it always 3?&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2017 19:58:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384416#M91787</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-07-31T19:58:45Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384417#M91788</link>
      <description>&lt;P&gt;I can get the san to work....just not with a range of variables.&amp;nbsp; I'm not soing something right...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;data rr.namepers2006;&lt;BR /&gt;set sar_raw.rr2006&amp;nbsp; (keep=namepers1-namepers3);&lt;BR /&gt;array new_var(*)$ name1-Name3 grade1-grade3 rank1-rank3;&amp;nbsp;&amp;nbsp; *not sure if you can use array dimensions like this??;&lt;BR /&gt;i=1;&lt;BR /&gt;do while(scan(namepers1-namepers3, i, "/") ne "");&lt;BR /&gt;new_var(i) =scan(namepers1-namepers3, i, "/");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *trying to scan range of variables;&lt;BR /&gt;i+1;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2017 20:03:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384417#M91788</guid>
      <dc:creator>jenim514</dc:creator>
      <dc:date>2017-07-31T20:03:24Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384418#M91789</link>
      <description>always 3</description>
      <pubDate>Mon, 31 Jul 2017 20:03:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384418#M91789</guid>
      <dc:creator>jenim514</dc:creator>
      <dc:date>2017-07-31T20:03:51Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384422#M91791</link>
      <description>&lt;P&gt;Here is one way:&lt;/P&gt;
&lt;PRE&gt;data need (keep=id _name_ i data);
  set rr2006;
  array rec(*) $ namepers1-namepers8;
  array new_var(*) $ last rank grade;
  id=_n_;
  do i=1 to dim(rec);
    if rec(i) ne '' then do;
      j=1;
      do while(scan(rec(i), j, "/") ne "");
        data =scan(rec(i), j, "/");
        _name_=vname(new_var(j));
        output;
        j+1;
      end;
    end;
  end;
run;

proc transpose data=need out=namepers2006 (drop=id _name_);
  var data;
  by id;
  id _name_ i;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2017 20:11:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384422#M91791</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-07-31T20:11:21Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384423#M91792</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;;
infile cards dlm=',';
informat per1-per3 $20.;
input per1 per2 per3;
array name(3) $20. name1-Name3 ;
array grade(3) $20. grade1-grade3;
array rank(3) $20. rank1-rank3;   
array old_var(3) per1-per3;

do i=1 to 3;
name(i)=scan(old_var(i), 1, ".");
grade(i)=scan(old_var(i), 2, "/");
rank(i)=scan(old_var(i), 3, "/");
end;

cards;
Sample J ./0-3/ LT , Sample A ./0-1/ LT, Sample E ./0-4/ CDR
;

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 31 Jul 2017 20:12:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384423#M91792</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-07-31T20:12:29Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384424#M91793</link>
      <description>&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt; solution is more dynamic, but if you only have 3, the code is about the same length overall. It's what you can understand enough to change &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;</description>
      <pubDate>Mon, 31 Jul 2017 20:13:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384424#M91793</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-07-31T20:13:21Z</dc:date>
    </item>
    <item>
      <title>Re: serparate a range of string variables into multiple varialbes using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384427#M91795</link>
      <description>&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt; thank you!</description>
      <pubDate>Mon, 31 Jul 2017 20:23:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/serparate-a-range-of-string-variables-into-multiple-varialbes/m-p/384427#M91795</guid>
      <dc:creator>jenim514</dc:creator>
      <dc:date>2017-07-31T20:23:56Z</dc:date>
    </item>
  </channel>
</rss>

