Hi all!
I have a data set with a bunch of IDs as string variable like eg.below. I want to delete all the characters from "(" and include only the numbers before "(" for each ID. Any help with SAS code is much appreciated.
Thanks!
ID
48 (500_82)
49 (501_82)
Want:
ID_New
48
49
Hi @sms1891 Perhaps you could try scan knowing the separator '(' would of course be the first to split the string
data have;
input id $20.;
cards;
48 (500_82)
49 (501_82)
40
;
data want;
set have;
want=scan(id,1,'(');
run;
data have;
input ID $20.;
infile datalines dlm='';
datalines;
48 (500_82)
49 (501_82)
;
data want;
set have;
ID_New=substr(ID, 1, find(ID, '(')-1);
run;
If your pattern is not so consistent with some records not having the special character like the 3rd in the modified sample, the following should work
data have;
input id $20.;
cards;
48 (500_82)
49 (501_82)
40
;
data want;
set have;
if find(id,'(')>0 then want=substr(id,1,find(id,'(')-1);
else want=id;
run;
Hi @sms1891 Perhaps you could try scan knowing the separator '(' would of course be the first to split the string
data have;
input id $20.;
cards;
48 (500_82)
49 (501_82)
40
;
data want;
set have;
want=scan(id,1,'(');
run;
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.