<?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 string variable to new var in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710367#M218658</link>
    <description>&lt;P&gt;Do you know ahead the values you want to save as variables or you want to gather them dynamically according to input text?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are there rules which values to extract into the variables?&lt;/P&gt;</description>
    <pubDate>Sat, 09 Jan 2021 11:02:48 GMT</pubDate>
    <dc:creator>Shmuel</dc:creator>
    <dc:date>2021-01-09T11:02:48Z</dc:date>
    <item>
      <title>splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710341#M218648</link>
      <description>&lt;P&gt;&lt;SPAN&gt;My aim is to split&amp;nbsp;multiple&amp;nbsp;values from rows to multiple vars (create a new var for&amp;nbsp;each same value)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;I have read various similar topics but all inclusive.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Each rows contain between 1 to X information separate by a comma.&lt;BR /&gt;For each variable I have to process, I have&amp;nbsp;around&amp;nbsp;15 items plus the text typed by the users (free fields of a survey).&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Currently I get &amp;nbsp;information by column but I didn't succeed to group each same value by column (see eg). &lt;/SPAN&gt;&lt;SPAN&gt;I also tried to recode variables but, I have a lost of data...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;As I have several hundred lines and several variables with so much information to process, would someone please advise me?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Eg:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;What I have&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Id &amp;nbsp;&amp;nbsp;Varname&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;1&amp;nbsp;&amp;nbsp; Would like to get TV, Would like to view message&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;2&amp;nbsp; &amp;nbsp;Would like to speak&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;3&amp;nbsp;&amp;nbsp; Would like to speak, Would like to get TV&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;An idea of what I want &lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Id &amp;nbsp;&amp;nbsp;Varname &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;&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;&amp;nbsp;TV &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPEAK&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MSG&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;1&amp;nbsp;&amp;nbsp; Would like to get TV, Would like to view message&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;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;2&amp;nbsp; &amp;nbsp;Would like to speak&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;&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;0&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; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;3&amp;nbsp;&amp;nbsp; Would like to speak, Would like to get TV&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;&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;&amp;nbsp;0&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;Best&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Mic&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Jan 2021 01:48:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710341#M218648</guid>
      <dc:creator>Mic35</dc:creator>
      <dc:date>2021-01-09T01:48:16Z</dc:date>
    </item>
    <item>
      <title>Re: splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710350#M218653</link>
      <description>&lt;P&gt;Seems simple enough.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input id varname $60. ;
cards;
1   Would like to get TV, Would like to view message
2   Would like to speak
3   Would like to speak, Would like to get TV
;

data want ;
  set have ;
  TV = 0 ne findw(varname,'Would like to get TV',',','sit');
  SPEAK = 0 ne findw(varname,'Would like to speak',',','sit');
  MSG = 0 ne findw(varname,'Would like to view message',',','sit');
run;

proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs    id    varname                                             TV    SPEAK    MSG

 1      1    Would like to get TV, Would like to view message     1      0       1
 2      2    Would like to speak                                  0      1       0
 3      3    Would like to speak, Would like to get TV            1      1       0


&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 Jan 2021 05:30:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710350#M218653</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-01-09T05:30:41Z</dc:date>
    </item>
    <item>
      <title>Re: splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710364#M218655</link>
      <description>&lt;P&gt;Yes but&amp;nbsp;how to be sure I do not forget the elements written in free text ?&amp;nbsp;and how can I get them in easy way ?&lt;/P&gt;</description>
      <pubDate>Sat, 09 Jan 2021 09:19:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710364#M218655</guid>
      <dc:creator>Mic35</dc:creator>
      <dc:date>2021-01-09T09:19:57Z</dc:date>
    </item>
    <item>
      <title>Re: splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710367#M218658</link>
      <description>&lt;P&gt;Do you know ahead the values you want to save as variables or you want to gather them dynamically according to input text?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are there rules which values to extract into the variables?&lt;/P&gt;</description>
      <pubDate>Sat, 09 Jan 2021 11:02:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710367#M218658</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2021-01-09T11:02:48Z</dc:date>
    </item>
    <item>
      <title>Re: splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710369#M218660</link>
      <description>&lt;P&gt;In the database I must analyze it is a mixture of known and unknown data.&lt;BR /&gt;For the known data Tom's method is perfect (and simple &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; )but for the free-text data it's more complicated.&lt;BR /&gt;In theory this free text is located at the end of the character string but not checked on all the data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;for example my cell can be of the form&lt;/P&gt;
&lt;P&gt;ID varname&lt;BR /&gt;1 Would like to get TV, Would like to view message&lt;BR /&gt;2 Would like to speak&lt;BR /&gt;3 Would like to speak, Would like to get TV,&lt;STRONG&gt; I prefer ... but ....&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;I prefer ... but... = free text added by the participant&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Jan 2021 12:44:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710369#M218660</guid>
      <dc:creator>Mic35</dc:creator>
      <dc:date>2021-01-09T12:44:04Z</dc:date>
    </item>
    <item>
      <title>Re: splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710375#M218665</link>
      <description>&lt;P&gt;It will be hard to guaranty extraction all required words.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To get the last word of a string you can use scan function:&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;&amp;nbsp;wanted = scan(&amp;lt;string&amp;gt;,-1);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In other case you want to extract the following word coming after "&lt;STRONG&gt;prefer&lt;/STRONG&gt;" ?!&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if findw(&amp;lt;string&amp;gt;,'prefer') &amp;gt; 0 then
   wanted = scan(substr(&amp;lt;string&amp;gt;,findw(&amp;lt;string&amp;gt;,'prefer')),1);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You need check your data and gather rules to define which words to look for.&lt;BR /&gt;The program and its output should be checked often to assure optimal result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Even after having the rules, you still need:&lt;/P&gt;
&lt;P&gt;1) To check whether the extracted words are the expected ones and all required&lt;/P&gt;
&lt;P&gt;2) I suggest to start with transposing the data&amp;nbsp; so each observation contains:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ID, STRING (one string only per observation - assigned the maximum expected length).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Alternative way will be to scan the data and create a list of required words, then it is possible to check each word of the string if it is in the list either by array method or by a hashing method.&lt;/P&gt;</description>
      <pubDate>Sat, 09 Jan 2021 14:15:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710375#M218665</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2021-01-09T14:15:09Z</dc:date>
    </item>
    <item>
      <title>Re: splitting string variable to new var</title>
      <link>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710398#M218678</link>
      <description>&lt;P&gt;Thank you for your time and explanations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By going through this method I seem to obtain the desired result.... remains more than just doing a last random check on all data.&lt;/P&gt;
&lt;P&gt;In any case I thank you both for the advices on these SAS functionalities that I almost never use.&lt;BR /&gt;The ideal will always remain to participate in the design of the data collection in order to limit this kind of things.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data demo (keep=id varname wanted); set demo;
wanted = scan(varname,-1,","); run;

data demo ; set demo; 
&amp;nbsp; if &amp;nbsp; find(wanted, 'Would like to view message',"i") &amp;gt;0 OR
&amp;nbsp; &amp;nbsp; &amp;nbsp; find(wanted, 'Would like to speak',"i") &amp;gt;0 &amp;nbsp;THEN wanted="";
run;

proc freq data=demo;
table varname wanted; run&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 10 Jan 2021 00:03:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/splitting-string-variable-to-new-var/m-p/710398#M218678</guid>
      <dc:creator>Mic35</dc:creator>
      <dc:date>2021-01-10T00:03:41Z</dc:date>
    </item>
  </channel>
</rss>

