Quartz | Level 8

## how can i replace multiple varibale

what function can i use to replace the variable with 4  in the place of 4 or multiples of 4 ??

the input  is

data one ;
a='abcdefghijklmnopqrstuvwx';
run;

the output i want is :

abc4efg4hij4lmn4pqr4tuv4

1 ACCEPTED SOLUTION

Accepted Solutions
Quartz | Level 8

## Re: how can i replace multiple varibale

You put abc4efg4hij4lmn4pqr4tuv4 when I believe it is abc4efg4ijk4mno4qrs4uvw4. The problem being that h.

Try this.

``````data work.want;
attrib 	a format = \$50.
want format = \$50.
;

a ='abcdefghijklmnopqrstuvwx';
array lettersInA[26] \$ _TEMPORARY_;

do i = 1 to lengthn(a);
if mod(i,4) = 0 then lettersInA[i] = "4";
else lettersInA[i] = substr(a,i,1);
end;

want = cats(of lettersInA[*]);
drop i;
run; ``````
4 REPLIES 4
Barite | Level 11

## Re: how can i replace multiple varibale

Can't test the code now, try something like:

data work.want;
a ='abcdefghijklmnopqrstuvwx';

do i = 1 to lengthen(a);
if int(i/4) = 0 then do;
substr(a, i, 1) = '4';
end;
end;
run;
Quartz | Level 8

## Re: how can i replace multiple varibale

You put abc4efg4hij4lmn4pqr4tuv4 when I believe it is abc4efg4ijk4mno4qrs4uvw4. The problem being that h.

Try this.

``````data work.want;
attrib 	a format = \$50.
want format = \$50.
;

a ='abcdefghijklmnopqrstuvwx';
array lettersInA[26] \$ _TEMPORARY_;

do i = 1 to lengthn(a);
if mod(i,4) = 0 then lettersInA[i] = "4";
else lettersInA[i] = substr(a,i,1);
end;

want = cats(of lettersInA[*]);
drop i;
run; ``````
Super User

## Re: how can i replace multiple varibale

``````data _null_;
a ='abcdefghijklmnopqrstuvwx';
put a=;
do i = 4 to length(a) by 4;
substr(a, i, 1) = '4';
end;
put a=;
run;``````
Quartz | Level 8

## Re: how can i replace multiple varibale

thank you so much this worked

Discussion stats
• 4 replies
• 768 views
• 3 likes
• 4 in conversation