In the below dataset A, I have 4 names with ID numbers, may I know how to create new ID for the new names in dataset, from 1008 to 1011? Below is sample only, i could have thousands of new names.
DATA A;
INFILE CARDS;
INPUT ID NAME $;
CARDS;
1004 JESSICA
1005 UTAKA
1006 MORRISSON
1007 NELSON
;
RUN;
DATA B;
INFILE CARDS;
INPUT NAME $;
CARDS;
RYAN
HOLLY
MASON
DORREN
;
RUN;
Data want;
set a(in=AI)
B(in=BI);
retain maxid count 0;
if AI and id>MaxID then maxID=ID;
if BI then Do;
count+1;
ID=maxID + count;
end;
run;
This can possibly be simplified massively but it's easy to understand.
Edit: fixed typo. Also, this is untested.
Are you using solely SAS? Many DBs have auto-incrementing IDs which is why I ask.
Yes, SAS only.
Data want;
set a(in=AI)
B(in=BI);
retain maxid count 0;
if AI and id>MaxID then maxID=ID;
if BI then Do;
count+1;
ID=maxID + count;
end;
run;
This can possibly be simplified massively but it's easy to understand.
Edit: fixed typo. Also, this is untested.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.