DATA Step, Macro, Functions and more

Replace string with another string

Reply
Contributor
Posts: 40

Replace string with another string

data ds;
infile datalines;
input var1 var2$10.;
datalines;
201 Pakistan
206 Bangladesh
209 Russia
208 China

245 In

862 L
;
run;

what i need is


Paxxstan
baxxladesh
Ruxxia

chxxa

In
L

Respected Advisor
Posts: 3,000

Re: Replace string with another string

Posted in reply to srinath3111
data want;
    set have;
    substr(country,3,1)='x';
    substr(country,4,1)='x';
run;
--
Paige Miller
Super User
Posts: 6,762

Re: Replace string with another string

Posted in reply to srinath3111

One case that is missing from your example:  Sri

 

Should that become Srx or should it become Srxx?

 

At any rate, here are the basic tools that you can modify if needed:

 

if length(var2) > 2 then substr(var2, 3, 2) = 'xx';

Contributor
Posts: 49

Re: Replace string with another string

Posted in reply to srinath3111

data want;
set ds;
if length(var2) >2 then
var3 = tranwrd(var2,substr(var2,3,2),"XX");
else var3 = var2;
run;

Valued Guide
Posts: 590

Re: Replace string with another string

[ Edited ]
Posted in reply to srinath3111

You can use substr() function along with IF condition:

data want;
set ds;
if length(var2)<=2 then new_var=var2;
else if length(var2)=3 then new_var=substr(var2,1,2)||"x"||substr(var2,5);
else new_var=substr(var2,1,2)||"xx"||substr(var2,5);
run;

Another alternate solution will be using the Perl expression:

data want;
set ds;
new_var=substr(var2,1,2)||prxchange('s/[a-z][a-z]/xx/i',1,substr(var2,3));
run;
Thanks,
Suryakiran
Ask a Question
Discussion stats
  • 4 replies
  • 64 views
  • 2 likes
  • 5 in conversation