## How to remove last repeated same word more then once?

Frequent Contributor
Posts: 81

# How to remove last repeated same word more then once?

data have;
input a \$ 30.;
cards;
abc %ak% %ak%
hjk %kl% %kl%
hygllllkjk %ko% %ko%
run;

Required Output:

abc           %ak%

hjk             %kl%

hygllllkjk    %ko%

PROC Star
Posts: 8,115

## Re: How to remove last repeated same word more then once?

Posted in reply to rajeshalwayswel

Here is one way:

```data have;
informat a \$30.;
length b \$30;
input a &;
cards;
abc %ak% %ak%
hjk %kl% %kl%
hygllllkjk %ko% %ko%
;
run;

data want (drop=i j);
set have;
array test(999) \$ _temporary_;
i=1;
j=0;
do while (scan(a,i,' ') ne '');
if scan(a,i,' ') not in test then do;
j+1;
test(j)=scan(a,i,' ');
end;
i+1;
end;
do i=1 to j;
b=catx(' ',b,test(i));
end;
run;
```

Art, CEO, AnalystFinder.com

Super User
Posts: 9,227

## Re: How to remove last repeated same word more then once?

Posted in reply to rajeshalwayswel

Assumes your test data reflects your data!:

`data want; set have; name=scan(a,1); other=scan(a,2,"%");run;`
Super User
Posts: 10,621

## Re: How to remove last repeated same word more then once?

Posted in reply to rajeshalwayswel
``````data have;
input a \$30.;
cards;
abc %ak% %ak%
hjk %kl% %kl%
hygllllkjk %ko% %ko%
hygllllkjk %ko%
;
run;

data want;
set have;
want=prxchange('s/(\s+\S+)(\1)+\$/\1/',-1,strip(a));
run;``````
Discussion stats
• 3 replies
• 126 views
• 0 likes
• 4 in conversation