<?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: Splitting Text into different variables/columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498206#M132339</link>
    <description>&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Will it work well now or we can do it with one step only?&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data tbl1;
 set sashelp.cars;
delims = ' ,.!';                 /* delimiters: space, comma, period, ... */
numWords = countw(str, delims);       /* for each line of text, how many words? */
Run;


Proc SQL noprint;
select  max(numWords)  into   :No_words
 from tbl1;  
quit;
 

Data desired;
Set sashelp.cars;
 array modelname[&amp;amp;No_words.] $15 model1-model&amp;amp; No_words.;
 do i = 1 to &amp;amp; No_words.;
  modelname[i] = scan(model,i,", ");
 end;
 keep model model1-model&amp;amp; No_words.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Sun, 23 Sep 2018 10:04:39 GMT</pubDate>
    <dc:creator>Ronein</dc:creator>
    <dc:date>2018-09-23T10:04:39Z</dc:date>
    <item>
      <title>Splitting Text into different variables/columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498200#M132336</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;Here is a code to split a char column to multiple columns.&lt;/P&gt;&lt;P&gt;In this code I know in advance that there are maximum 4&amp;nbsp; words in the string.&lt;/P&gt;&lt;P&gt;My question is How can I modify the code that it will calculate automatically the maximum number of words.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cars_parse;
 set sashelp.cars;
 array modelname[5] $15 model1-model5;
 do i = 1 to 5;
  modelname[i] = scan(model,i,", ");
 end;
 keep model model1-model5;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;5&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 23 Sep 2018 09:54:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498200#M132336</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2018-09-23T09:54:56Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting Text into different variables/columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498204#M132338</link>
      <description>&lt;P&gt;Use function COUNTW()&lt;/P&gt;</description>
      <pubDate>Sun, 23 Sep 2018 09:55:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498204#M132338</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-09-23T09:55:06Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting Text into different variables/columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498206#M132339</link>
      <description>&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Will it work well now or we can do it with one step only?&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data tbl1;
 set sashelp.cars;
delims = ' ,.!';                 /* delimiters: space, comma, period, ... */
numWords = countw(str, delims);       /* for each line of text, how many words? */
Run;


Proc SQL noprint;
select  max(numWords)  into   :No_words
 from tbl1;  
quit;
 

Data desired;
Set sashelp.cars;
 array modelname[&amp;amp;No_words.] $15 model1-model&amp;amp; No_words.;
 do i = 1 to &amp;amp; No_words.;
  modelname[i] = scan(model,i,", ");
 end;
 keep model model1-model&amp;amp; No_words.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 23 Sep 2018 10:04:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498206#M132339</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2018-09-23T10:04:39Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting Text into different variables/columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498217#M132342</link>
      <description>&lt;P&gt;you can combine the first two steps in one data step:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data tbl1;
 set sashelp.cars  end=eof;
       retain numWords 0;
       delims = ' ,.!';                 /* delimiters: space, comma, period, ... */
       numWords = max(numWords , countw(str, delims));    
                            /* for each line of text, how many words? */
       if eof then call symput('No_words', left(numWords));
Run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;</description>
      <pubDate>Sun, 23 Sep 2018 11:46:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-Text-into-different-variables-columns/m-p/498217#M132342</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-09-23T11:46:43Z</dc:date>
    </item>
  </channel>
</rss>

