🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 04-04-2019 06:07 PM
(65394 views)
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
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
4 REPLIES 4
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data one;
set have;
string1=substr(id,1,2);
run;
set have;
string1=substr(id,1,2);
run;