<?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 extract words from a string in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832439#M329027</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a variable called MH in a dataset. I would like to extract the names (i.e., aaa or bbb...) and put them in a new variable called NEW.&amp;nbsp;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;obs&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MH&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seq:1; Name:aaa; Date:xxx; Reason:xxx&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seq:1; Name:aaaa; Date:xxx; Reason:xxx&amp;nbsp;&amp;nbsp;Seq:2; Name:bbb; Date:xxx; Reason:xxx&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seq:1; Name:aaa; Date:xxx; Reason:xxx&amp;nbsp;&amp;nbsp;Seq:2; Name:bb; Date:xxx; Reason:xxx&amp;nbsp;&amp;nbsp;Seq:3; Name:cc; Date:xxx; Reason:xxx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;obs&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NEW&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aaa&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aaaa;bbb&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aaa;bb;cc&lt;/P&gt;</description>
    <pubDate>Fri, 09 Sep 2022 08:20:01 GMT</pubDate>
    <dc:creator>piao</dc:creator>
    <dc:date>2022-09-09T08:20:01Z</dc:date>
    <item>
      <title>extract words from a string</title>
      <link>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832439#M329027</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a variable called MH in a dataset. I would like to extract the names (i.e., aaa or bbb...) and put them in a new variable called NEW.&amp;nbsp;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;obs&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MH&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seq:1; Name:aaa; Date:xxx; Reason:xxx&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seq:1; Name:aaaa; Date:xxx; Reason:xxx&amp;nbsp;&amp;nbsp;Seq:2; Name:bbb; Date:xxx; Reason:xxx&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seq:1; Name:aaa; Date:xxx; Reason:xxx&amp;nbsp;&amp;nbsp;Seq:2; Name:bb; Date:xxx; Reason:xxx&amp;nbsp;&amp;nbsp;Seq:3; Name:cc; Date:xxx; Reason:xxx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;obs&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NEW&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aaa&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aaaa;bbb&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aaa;bb;cc&lt;/P&gt;</description>
      <pubDate>Fri, 09 Sep 2022 08:20:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832439#M329027</guid>
      <dc:creator>piao</dc:creator>
      <dc:date>2022-09-09T08:20:01Z</dc:date>
    </item>
    <item>
      <title>Re: extract words from a string</title>
      <link>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832441#M329028</link>
      <description>&lt;P&gt;You could use a loop with countw and scan, untested code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;do i = 1 to countw(mh, ';');
  pair = scan(mh, i, ';');
  key = scan(pair, 1, ':');
  if key = 'Name' then do;
   new = catx(';', new, scan(pair, 2, ':');
  end;
end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Using a regex (with a loop) is another way so solve the problem.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Sep 2022 08:28:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832441#M329028</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2022-09-09T08:28:20Z</dc:date>
    </item>
    <item>
      <title>Re: extract words from a string</title>
      <link>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832444#M329031</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input MH :$300.;
infile datalines dlm = '|';
datalines4;
Seq:1; Name:aaa; Date:xxx; Reason:xxx                                                                           
Seq:1; Name:aaaa; Date:xxx; Reason:xxx Seq:2; Name:bbb; Date:xxx; Reason:xxx                                    
Seq:1; Name:aaa; Date:xxx; Reason:xxx Seq:2; Name:bb; Date:xxx; Reason:xxx Seq:3; Name:cc; Date:xxx; Reason:xxx 
;;;;

data temp;
   set have;
   group + 1;
   do i = 1 to countw(MH, ';');
      w = scan(MH, i, ';');
      output;
   end;
run;

data want;
   set temp;
   by group;
   length new $200;
   if first.group then new = '';
   if find(w, 'name', 'i') then new = catx('; ', new, tranwrd(w, 'Name:', ''));
   if last.group;
   retain new;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 09 Sep 2022 08:39:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/extract-words-from-a-string/m-p/832444#M329031</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2022-09-09T08:39:20Z</dc:date>
    </item>
  </channel>
</rss>

