<?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: How do I perform a conditional substitution using PRXCHANGE? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290389#M60091</link>
    <description>&lt;P&gt;Depends on several factors, is it just two, then:&lt;/P&gt;
&lt;PRE&gt;data have;
  input x $20.;
cards;
A123
AX345
B456
BY789
;
run;
data want;
  set have;
  x=ifc(substr(x,1,1)="A",cats("AX",compress(x," ","kd")),cats("BY",compress(x," ","kd")));
run;&lt;/PRE&gt;
&lt;P&gt;If its more, but you know them up front then:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  select(substr(x,1,1));
    when ("A") x=cats("AX",compress(x," ","kd"));
    when ("B") x=cats("BY",compress(x," ","kd"));
    otherwise;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;If you don't know them up front then you will need to provide the logic to populate them, I.e. you could have AX and AY?&lt;/P&gt;</description>
    <pubDate>Tue, 09 Aug 2016 08:40:56 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2016-08-09T08:40:56Z</dc:date>
    <item>
      <title>How do I perform a conditional substitution using PRXCHANGE?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290335#M60061</link>
      <description>&lt;P&gt;I'm trying to write to conditionally substitute portions of a text string. For example, if I have:&lt;/P&gt;&lt;P&gt;A123&lt;/P&gt;&lt;P&gt;AX345&lt;/P&gt;&lt;P&gt;B456&lt;/P&gt;&lt;P&gt;BY789&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want the values in my data set to be:&lt;/P&gt;&lt;P&gt;AX123&lt;/P&gt;&lt;P&gt;AX345&lt;/P&gt;&lt;P&gt;BY456&lt;/P&gt;&lt;P&gt;BY789&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there a way to accomplish this in one prxchange statement?&lt;/P&gt;&lt;P&gt;(Using SAS 9.4.)&lt;/P&gt;</description>
      <pubDate>Mon, 08 Aug 2016 21:31:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290335#M60061</guid>
      <dc:creator>jylo</dc:creator>
      <dc:date>2016-08-08T21:31:32Z</dc:date>
    </item>
    <item>
      <title>Re: How do I perform a conditional substitution using PRXCHANGE?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290366#M60080</link>
      <description>&lt;PRE&gt;
Assuming the data is just like what you posted:


data have;
input x $20.;
cards;
A123
AX345
B456
BY789
;
run;
data have;
 set have;
 group=first(x);
 n=length(x);
run;
proc sort data=have;
 by group n;
run;
data want;
 do until(last.group);
  set have;
  by group;
 end;
 _x=x;
 do until(last.group);
  set have;
  by group;
  x=scan(_x,1,,'d')||scan(x,-1,,'kd');
  output;
 end;
 drop _x group n;
run;

&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Aug 2016 04:01:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290366#M60080</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-08-09T04:01:53Z</dc:date>
    </item>
    <item>
      <title>Re: How do I perform a conditional substitution using PRXCHANGE?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290389#M60091</link>
      <description>&lt;P&gt;Depends on several factors, is it just two, then:&lt;/P&gt;
&lt;PRE&gt;data have;
  input x $20.;
cards;
A123
AX345
B456
BY789
;
run;
data want;
  set have;
  x=ifc(substr(x,1,1)="A",cats("AX",compress(x," ","kd")),cats("BY",compress(x," ","kd")));
run;&lt;/PRE&gt;
&lt;P&gt;If its more, but you know them up front then:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  select(substr(x,1,1));
    when ("A") x=cats("AX",compress(x," ","kd"));
    when ("B") x=cats("BY",compress(x," ","kd"));
    otherwise;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;If you don't know them up front then you will need to provide the logic to populate them, I.e. you could have AX and AY?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Aug 2016 08:40:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/290389#M60091</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-08-09T08:40:56Z</dc:date>
    </item>
    <item>
      <title>Re: How do I perform a conditional substitution using PRXCHANGE?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/291286#M60360</link>
      <description>&lt;P&gt;The second alpha character is always known.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there a way to do this using PRXCHANGE?&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2016 15:07:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/291286#M60360</guid>
      <dc:creator>jylo</dc:creator>
      <dc:date>2016-08-12T15:07:53Z</dc:date>
    </item>
    <item>
      <title>Re: How do I perform a conditional substitution using PRXCHANGE?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/291475#M60386</link>
      <description>&lt;PRE&gt;
data have;
input x $ y $;
length want pid $ 40;
pid=cats('s/^([a-z])[a-z]*(\d+)/$1',y,'$2/i');
want=prxchange(pid,1,x);
cards;
A123 X
AX345 X
B456 Y
BY789 Y
;
run;

&lt;/PRE&gt;</description>
      <pubDate>Sat, 13 Aug 2016 04:25:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-perform-a-conditional-substitution-using-PRXCHANGE/m-p/291475#M60386</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-08-13T04:25:56Z</dc:date>
    </item>
  </channel>
</rss>

