<?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 split variable which include () or '' to different variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541661#M149588</link>
    <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I split variable&amp;nbsp;to different variables based on () and ''?&lt;/P&gt;&lt;P&gt;For example, for table a, I expect to get table b.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;table a&amp;nbsp;&lt;/P&gt;&lt;P&gt;me (DJI)&amp;nbsp;Kim&lt;/P&gt;&lt;P&gt;juice 'apple' org&lt;/P&gt;&lt;P&gt;apple 'jan' five (ooo) KKK&lt;/P&gt;&lt;P&gt;apple 'jan' (ooo) KKK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I expect to get&amp;nbsp;&lt;/P&gt;&lt;P&gt;table b&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;name, name_amonge_brackets, name_amonge_single_quotation_marks&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;me&amp;nbsp;Kim, DJI&lt;/P&gt;&lt;P&gt;juice org,,apple&lt;/P&gt;&lt;P&gt;apple five KKK,ooo,jan&lt;/P&gt;&lt;P&gt;apple five KKK,ooo,jan&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data a;
  infile datalines dlm=',' truncover;
informat HRM_L2_Step6 $1000. ;
input HRM_L2_Step6 ;
datalines;
UNVL.CERAMIC MATL.
CATHAY INTL.HDG. PREV GOLDEN HDG.
PILLAR PR.
IRISH CONT.GP.UTS
ASHANTI GOLDFIELD (ISE)
ASUSTEK CMP. GDR (XSQ)REG S
ALCATEL 'A' (XSQ)
ALL NIPPON AIRWAYS (XSQ)
ALPS ELECTRIC (XSQ)
AMER 'A' (XSQ)
ATLAS COPCO 'B' (XYZ)
AU.MIKRO SYSTEME (XSQ)
AUTOLIV (XSQ)
AVESTA SHEFFIELD (XSQ)
BNP (XSQ)
BNP CERTS (XSQ)
BANCA DI ROMA (XSQ)
BANCAIRE CIE (XSQ)
BNC.BILBAO ADS (XSQ)
BARLOW (XSQ)
BCI (XSQ)
BENETTON (XSQ)
BERGESEN 'B'N/V (XSQ)
BLYVOORUITIZICHT (XSQ)
BMW (XSQ)DUPL.SEE 740095
BOUYGUES (XSQ)
BUFETE ADS (XSQ)
CS HDG.BR (XSQ)
CSM (XSQ)
CANAL + (XSQ)
;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Could you please give me some suggestions about this? thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 09 Mar 2019 01:02:16 GMT</pubDate>
    <dc:creator>Alexxxxxxx</dc:creator>
    <dc:date>2019-03-09T01:02:16Z</dc:date>
    <item>
      <title>split variable which include () or '' to different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541661#M149588</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I split variable&amp;nbsp;to different variables based on () and ''?&lt;/P&gt;&lt;P&gt;For example, for table a, I expect to get table b.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;table a&amp;nbsp;&lt;/P&gt;&lt;P&gt;me (DJI)&amp;nbsp;Kim&lt;/P&gt;&lt;P&gt;juice 'apple' org&lt;/P&gt;&lt;P&gt;apple 'jan' five (ooo) KKK&lt;/P&gt;&lt;P&gt;apple 'jan' (ooo) KKK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I expect to get&amp;nbsp;&lt;/P&gt;&lt;P&gt;table b&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;name, name_amonge_brackets, name_amonge_single_quotation_marks&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;me&amp;nbsp;Kim, DJI&lt;/P&gt;&lt;P&gt;juice org,,apple&lt;/P&gt;&lt;P&gt;apple five KKK,ooo,jan&lt;/P&gt;&lt;P&gt;apple five KKK,ooo,jan&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data a;
  infile datalines dlm=',' truncover;
informat HRM_L2_Step6 $1000. ;
input HRM_L2_Step6 ;
datalines;
UNVL.CERAMIC MATL.
CATHAY INTL.HDG. PREV GOLDEN HDG.
PILLAR PR.
IRISH CONT.GP.UTS
ASHANTI GOLDFIELD (ISE)
ASUSTEK CMP. GDR (XSQ)REG S
ALCATEL 'A' (XSQ)
ALL NIPPON AIRWAYS (XSQ)
ALPS ELECTRIC (XSQ)
AMER 'A' (XSQ)
ATLAS COPCO 'B' (XYZ)
AU.MIKRO SYSTEME (XSQ)
AUTOLIV (XSQ)
AVESTA SHEFFIELD (XSQ)
BNP (XSQ)
BNP CERTS (XSQ)
BANCA DI ROMA (XSQ)
BANCAIRE CIE (XSQ)
BNC.BILBAO ADS (XSQ)
BARLOW (XSQ)
BCI (XSQ)
BENETTON (XSQ)
BERGESEN 'B'N/V (XSQ)
BLYVOORUITIZICHT (XSQ)
BMW (XSQ)DUPL.SEE 740095
BOUYGUES (XSQ)
BUFETE ADS (XSQ)
CS HDG.BR (XSQ)
CSM (XSQ)
CANAL + (XSQ)
;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Could you please give me some suggestions about this? thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2019 01:02:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541661#M149588</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-03-09T01:02:16Z</dc:date>
    </item>
    <item>
      <title>Re: split variable which include () or '' to different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541664#M149589</link>
      <description>&lt;P&gt;SCAN() will get you the word in the middle.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;TRANWRD() will remove that word once you've found it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Having demo variables as KKK probably isn't a great choice by the way.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/262815"&gt;@Alexxxxxxx&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Dear all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How can I split variable&amp;nbsp;to different variables based on () and ''?&lt;/P&gt;
&lt;P&gt;For example, for table a, I expect to get table b.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;table a&amp;nbsp;&lt;/P&gt;
&lt;P&gt;me (DJI)&amp;nbsp;Kim&lt;/P&gt;
&lt;P&gt;juice 'apple' org&lt;/P&gt;
&lt;P&gt;apple 'jan' five (ooo) KKK&lt;/P&gt;
&lt;P&gt;apple 'jan' (ooo) KKK&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I expect to get&amp;nbsp;&lt;/P&gt;
&lt;P&gt;table b&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;name, name_amonge_brackets, name_amonge_single_quotation_marks&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;me&amp;nbsp;Kim, DJI&lt;/P&gt;
&lt;P&gt;juice org,,apple&lt;/P&gt;
&lt;P&gt;apple five KKK,ooo,jan&lt;/P&gt;
&lt;P&gt;apple five KKK,ooo,jan&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data a;
  infile datalines dlm=',' truncover;
informat HRM_L2_Step6 $1000. ;
input HRM_L2_Step6 ;
datalines;
UNVL.CERAMIC MATL.
CATHAY INTL.HDG. PREV GOLDEN HDG.
PILLAR PR.
IRISH CONT.GP.UTS
ASHANTI GOLDFIELD (ISE)
ASUSTEK CMP. GDR (XSQ)REG S
ALCATEL 'A' (XSQ)
ALL NIPPON AIRWAYS (XSQ)
ALPS ELECTRIC (XSQ)
AMER 'A' (XSQ)
ATLAS COPCO 'B' (XYZ)
AU.MIKRO SYSTEME (XSQ)
AUTOLIV (XSQ)
AVESTA SHEFFIELD (XSQ)
BNP (XSQ)
BNP CERTS (XSQ)
BANCA DI ROMA (XSQ)
BANCAIRE CIE (XSQ)
BNC.BILBAO ADS (XSQ)
BARLOW (XSQ)
BCI (XSQ)
BENETTON (XSQ)
BERGESEN 'B'N/V (XSQ)
BLYVOORUITIZICHT (XSQ)
BMW (XSQ)DUPL.SEE 740095
BOUYGUES (XSQ)
BUFETE ADS (XSQ)
CS HDG.BR (XSQ)
CSM (XSQ)
CANAL + (XSQ)
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Could you please give me some suggestions about this? thanks in advance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2019 04:01:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541664#M149589</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-03-09T04:01:00Z</dc:date>
    </item>
    <item>
      <title>Re: split variable which include () or '' to different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541667#M149591</link>
      <description>&lt;P&gt;Below code works for your sample data. It might or might not work for your real data (i.e. if you've got an uneven number of single quotes in a string).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines dlm=',' truncover;
  informat HRM_L2_Step6 $1000.;
  input HRM_L2_Step6;
  datalines;
UNVL.CERAMIC MATL.
CATHAY INTL.HDG. PREV GOLDEN HDG.
PILLAR PR.
IRISH CONT.GP.UTS
ASHANTI GOLDFIELD (ISE)
ASUSTEK CMP. GDR (XSQ)REG S
ALCATEL 'A' (XSQ)
ALL NIPPON 'b' AIRWAYS (XSQ) 'A' (XYZ)  
ALPS ELECTRIC (XSQ)
AMER 'A' (XSQ)
ATLAS COPCO 'B' (XYZ)
AU.MIKRO SYSTEME (XSQ)
AUTOLIV (XSQ)
AVESTA SHEFFIELD (XSQ)
BNP (XSQ)
BNP CERTS (XSQ)
BANCA DI ROMA (XSQ)
BANCAIRE CIE (XSQ)
BNC.BILBAO ADS (XSQ)
BARLOW (XSQ)
BCI (XSQ)
BENETTON (XSQ)
BERGESEN 'B'N/V (XSQ)
BLYVOORUITIZICHT (XSQ)
BMW (XSQ)DUPL.SEE 740095
BOUYGUES (XSQ)
BUFETE ADS (XSQ)
CS HDG.BR (XSQ)
CSM (XSQ)
CANAL + (XSQ)
;
run;


data want(drop=_:);

  set have;
  HRM_L2_Step6_orig=HRM_L2_Step6;
  length str_in_brackets str_in_quotes $1000;

  if _n_=1 then
    do;
      _rx_bracket_id=prxparse('/\([^\)]*\)/oi');
      _rx_quote_id=prxparse("/'[^']*'/oi");
      retain _rx_bracket_id _rx_quote_id;
    end;

  do while(1);
    call prxsubstr(_rx_bracket_id, left(hrm_l2_step6), _pos, _len);
    if _len=0 then leave;
    str_in_brackets=catx(' ',str_in_brackets,substrn(HRM_L2_Step6,_pos+1,_len-2));
    HRM_L2_Step6=substrn(HRM_L2_Step6,1,_pos-1)||substrn(HRM_L2_Step6,_pos+_len);
  end;

  do while(1);
    call prxsubstr(_rx_quote_id, left(hrm_l2_step6), _pos, _len);
    if _len=0 then leave;
    str_in_quotes=catx(' ',str_in_quotes,substrn(HRM_L2_Step6,_pos+1,_len-2));
    HRM_L2_Step6=substrn(HRM_L2_Step6,1,_pos-1)||substrn(HRM_L2_Step6,_pos+_len);
  end;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If the code is not sufficient for your real data then try to amend the Regular Expressions to fit what you're dealing with.&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2019 05:23:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541667#M149591</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-03-09T05:23:51Z</dc:date>
    </item>
    <item>
      <title>Re: split variable which include () or '' to different variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541669#M149592</link>
      <description>&lt;P&gt;You can go at it quite systematically with pattern matching functions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data b;
if not patQ then patQ + prxParse("/'.*'/o");
if not patB then patB + prxParse("/\(.*\)/o");
set a;
length name nameQ nameB $1000;
name = HRM_L2_Step6;
start = 1;
call prxNext(patQ, start, -1, name, pos, len);
if len &amp;gt;= 2 then do;
    nameQ = substrn(name, pos+1, len-2);
    name = catx(" ", substrn(name, 1, pos-1), substr(name, pos+len));
    end;
start = 1;
call prxNext(patB, start, -1, name, pos, len);
if len &amp;gt;= 2 then do;
    nameB = substrn(name, pos+1, len-2);
    name = catx(" ", substrn(name, 1, pos-1), substr(name, pos+len));
    end;
drop patQ patB start pos len;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 Mar 2019 05:52:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-variable-which-include-or-to-different-variables/m-p/541669#M149592</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-03-09T05:52:31Z</dc:date>
    </item>
  </channel>
</rss>

