Hi all,
If I have values that consistently are in this type of layout- (that is a wanted character string between ( x) and a (char date.)..
AE: (6) urinary tract infection 22-NOV-2017
Is there a way to just extract the 'urinary tract infection' to a new variable?
Help is appreciated!
data have;
input var $80.;
call scan(var,-1,position, length,' ');
k1=index(var,')');
need= substr(var,index(var,')')+1,position-k1-1);
drop k: position length;
cards;
AE: (6) urinary tract infection 22-NOV-2017
;
data have;
input var $80.;
call scan(var,-1,position, length,' ');
k1=index(var,')');
need= substr(var,index(var,')')+1,position-k1-1);
drop k: position length;
cards;
AE: (6) urinary tract infection 22-NOV-2017
;
@novinosrin thank you! HUGE help!!!
@jenim514 You could mark the question as answered and close the thread
If you data looks like the example you showed i.e. you have lowercase for the string you want to extract remaning other than lowercase then you can use COMPRESS() function with "k" (keeps the characters in the list instead of removing them) and "l" modifier (adding lowercase to list).
DATA HAVE;
STRING="AE: (6) urinary tract infection 22-NOV-2017";
Want_Str=STRIP(COMPRESS(STRING,"","kl"));
run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Select SAS Training centers are offering in-person courses. View upcoming courses for: