<?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: split string into multiple new varaibles in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670360#M201216</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;What is the purpose of the code:&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;%let max_wrd=;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It is a "safety valve" in case the dataset contains no observations.&lt;/P&gt;</description>
    <pubDate>Sat, 18 Jul 2020 18:42:33 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2020-07-18T18:42:33Z</dc:date>
    <item>
      <title>split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670269#M201175</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;I want to split words in column model .&lt;/P&gt;
&lt;P&gt;Each word will be in a new column.&lt;/P&gt;
&lt;P&gt;Let's say that I don't know in advance how many new variables should be defined and I want to calculate it with countw function.&lt;/P&gt;
&lt;P&gt;I am using array to split the string into multiple varaibles.&lt;/P&gt;
&lt;P&gt;My question is related to array statement.&lt;/P&gt;
&lt;P&gt;How should I tell SAS that the new variables are&amp;nbsp; model1 until model number k?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cars_new;
 set sashelp.cars;
 k=countw(model,",");
 array modelname[k] $15  model1-modelK;/*Here is my question*/
 do i = 1 to k;
  modelname[i] = scan(model,i,", ");
 end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 18 Jul 2020 06:03:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670269#M201175</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2020-07-18T06:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670271#M201176</link>
      <description>&lt;P&gt;You first need to determine max(countw(model)) in a SQL step (SELECT INTO), store this in a macro variable, and use that macro variable for the definition of the array.&lt;/P&gt;
&lt;P&gt;Arrays are static in size for the duration of a data step.&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 06:08:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670271#M201176</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-07-18T06:08:15Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670273#M201177</link>
      <description>&lt;P&gt;Thank you very much!&lt;/P&gt;
&lt;P&gt;Is it fine to write&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;model1-model&amp;amp;K.&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  proc sql noprint;
   select  max(countw(model))  into :K 
   from sashelp.cars
  ;
   quit;

data cars_new;
 set sashelp.cars;
 array modelname[&amp;amp;K.] $15  model1-model&amp;amp;K.; 
 do i = 1 to &amp;amp;k.;
  modelname[i] = scan(model,i,", ");
 end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 18 Jul 2020 06:15:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670273#M201177</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2020-07-18T06:15:18Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670274#M201178</link>
      <description>&lt;P&gt;Once again: Maxim 4.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am on my tablet at the moment, so can't test anything.&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 06:33:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670274#M201178</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-07-18T06:33:23Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670283#M201182</link>
      <description>&lt;P&gt;Something like below should work.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let max_wrd=;
proc sql noprint;
  select max(countw(model,', ')) into :max_wrd trimmed
  from sashelp.cars
  ;
quit;

data cars_new(drop=_:);
  set sashelp.cars;
  array model_[&amp;amp;max_wrd] $15 ;
  do _i = 1 to dim(model_);
    model_[_i] = scan(model,_i,', ');
    if missing(model_[_i]) then leave;
  end;
run;

proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 09:57:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670283#M201182</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2020-07-18T09:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670291#M201184</link>
      <description>&lt;P&gt;Yes, &lt;CODE&gt;model1-model&amp;amp;K&lt;/CODE&gt;is correct.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, you will want to ensure the&amp;nbsp;&lt;CODE&gt;countw&lt;/CODE&gt;&amp;nbsp;parse uses the same delimiter as the later&amp;nbsp;&lt;CODE&gt;scan&lt;/CODE&gt;.&amp;nbsp; Trimmed results are needed for usage such as &lt;CODE&gt;model&amp;amp;K&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;proc sql noprint;
  select  max(countw(model, ", " )) /* word count based on comma or space as delimiters */
  into :K trimmed                   /* remove leading and trailing spaces of value placed in macro variable K */
  from sashelp.cars
  ;
quit;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 11:38:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670291#M201184</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-07-18T11:38:19Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670303#M201192</link>
      <description>&lt;P&gt;a Few questions please:&lt;/P&gt;
&lt;P&gt;1- When you declare the array called&amp;nbsp; model_, shouldn't you type the names of the new varaibles?&lt;/P&gt;
&lt;P&gt;It was written :&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;array model_[&amp;amp;max_wrd] $15 ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Where did you tell SAS what will be the names of the new varaibles?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;2- What is the purpose of :&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;  if missing(model_[_i]) then leave;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;What will happen If you don't type it?&lt;/P&gt;
&lt;P&gt;thanks&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 13:06:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670303#M201192</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2020-07-18T13:06:42Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670304#M201193</link>
      <description>&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;You wrote&amp;nbsp; _i&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Was it typing error?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 13:14:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670304#M201193</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2020-07-18T13:14:52Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670320#M201197</link>
      <description>&lt;P&gt;Once again, Maxim 1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From the documentation for the &lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=lestmtsref&amp;amp;docsetTarget=p08do6szetrxe2n136ush727sbuo.htm&amp;amp;locale=en" target="_blank" rel="noopener"&gt;ARRAY Statement&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class="xisDoc-summary"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="xisDoc-summaryRange"&gt;Range&lt;/TD&gt;
&lt;TD class="xisDoc-summaryText"&gt;The names must be either variables that you define in the ARRAY statement or variables that SAS creates by concatenating the array name and a number. For example, when the subscript is a number (not the asterisk), you do not need to name each variable in the array. Instead, SAS creates variable names by concatenating the array name and the numbers 1, 2, 3, …&lt;EM class="xisDoc-userSuppliedValue"&gt;n&lt;/EM&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Sat, 18 Jul 2020 15:30:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670320#M201197</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-07-18T15:30:34Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670340#M201205</link>
      <description>&lt;P&gt;What is the purpose of the code:&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;%let max_wrd=;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 16:48:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670340#M201205</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2020-07-18T16:48:09Z</dc:date>
    </item>
    <item>
      <title>Re: split string into multiple new varaibles</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670360#M201216</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;What is the purpose of the code:&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;%let max_wrd=;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It is a "safety valve" in case the dataset contains no observations.&lt;/P&gt;</description>
      <pubDate>Sat, 18 Jul 2020 18:42:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-string-into-multiple-new-varaibles/m-p/670360#M201216</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-07-18T18:42:33Z</dc:date>
    </item>
  </channel>
</rss>

