DATA Step, Macro, Functions and more

How to extract characters from a string staring from right hand side?

Reply
Contributor
Posts: 28

How to extract characters from a string staring from right hand side?

Hello everyone,

I have a string variable called part4 that looks something like:

part4.PNG

 

   

 

I am trying to extract the first 24 characters starting from right hand side moving toward the left, how can I accomplish that?

Thanks

PROC Star
Posts: 2,319

Re: How to extract characters from a string staring from right hand side?

[ Edited ]
Posted in reply to nismail1976

Like this?

 


EXTRACT=substr(reverse(trim(PART4)),1,24); 

 

Super User
Posts: 13,338

Re: How to extract characters from a string staring from right hand side?

[ Edited ]
Posted in reply to nismail1976

or

extract= substr(x, length(x)-24+1);

 

I did 24 + 1 incase you need to change the 24 based on a variable value.

 

If you have 10 characters and want 4, 10-4=6, but character positions 6,7,8,9 and 10 = 5 characters, so add 1.

 

This will not work if you ask for more characters than exist though.

Esteemed Advisor
Posts: 5,482

Re: How to extract characters from a string staring from right hand side?

I think this will always work:

 

extract= right(subpad(x, max(1, length(x)-24+1), 24));

PG
Frequent Contributor
Posts: 113

Re: How to extract characters from a string staring from right hand side?

Posted in reply to nismail1976

Try this....

 

 

data want;
  set have;
Latest24months = ifc(length(text)>24,substrn(text,length(text)-23), text);

LATETS24MONTHS_2= ifc(length(text)<=24,TEXT, substrn(text,length(text)-23));

IF LATEST24MONTHS = LATEST24MONTHS_2 THEN TAG=1; run;

 

Choose between latest24months or latest24months_2.  Tag is used to check if both will provide the same result.

 

Hope this helps.

Ask a Question
Discussion stats
  • 4 replies
  • 145 views
  • 6 likes
  • 5 in conversation