Hi,
I have a data like this:
ID Date Trt
1 3/10/2018 AN
1 5/3/2018 BH
1 5/3/2018 AN
1 9/9/2018 CL
2 2/10/2018 AN
3 5/30/2018 CL
3 5/30/2018 TH
3 12/9/2018 AN
4 3/15/2018 GB
4 6/3/2018 BH
4 10/3/2018 AN
I want this:
ID Date Trt
1 3/10/2018 AN
1 5/3/2018 BH/AN
1 9/9/2018 CL
2 2/10/2018 AN
3 5/30/2018 CL/TH
3 12/9/2018 AN
4 3/15/2018 GB
4 6/3/2018 BH
4 10/3/2018 AN
Basically, I am combining the TRT that occur on the same dates into one value. I can't seem to do this without combining all the TRT for each ID into one.
Thank you!
data have;
input ID Date :mmddyy10. Trt $;
format date mmddyy10.;
cards;
1 3/10/2018 AN
1 5/3/2018 BH
1 5/3/2018 AN
1 9/9/2018 CL
2 2/10/2018 AN
3 5/30/2018 CL
3 5/30/2018 TH
3 12/9/2018 AN
4 3/15/2018 GB
4 6/3/2018 BH
4 10/3/2018 AN
;
data want;
do until(last.date);
set have;
by id date;
length want $50;
want=catx('/',want,trt);
end;
run;
data have;
input ID Date :mmddyy10. Trt $;
format date mmddyy10.;
cards;
1 3/10/2018 AN
1 5/3/2018 BH
1 5/3/2018 AN
1 9/9/2018 CL
2 2/10/2018 AN
3 5/30/2018 CL
3 5/30/2018 TH
3 12/9/2018 AN
4 3/15/2018 GB
4 6/3/2018 BH
4 10/3/2018 AN
;
data want;
do until(last.date);
set have;
by id date;
length want $50;
want=catx('/',want,trt);
end;
run;
Worked perfectly. Thank you so much...can't believe it's so simple!
Yes you are right. Just a matter of understanding by group processing in a sorted dataset by id date
Rest is a breeze 🙂
Use a DO UNTIL loop and the catx function:
data have;
input ID Date:mmddyy. Trt$ ;
format date yymmdd10.;
datalines;
1 3/10/2018 AN
1 5/3/2018 BH
1 5/3/2018 AN
1 9/9/2018 CL
2 2/10/2018 AN
3 5/30/2018 CL
3 5/30/2018 TH
3 12/9/2018 AN
4 3/15/2018 GB
4 6/3/2018 BH
4 10/3/2018 AN
;
data want;
length trts $20;
do until (last.date);
set have; by ID date;
trts = catx("/", trts, trt);
end;
drop trt;
run;
proc print data=want noobs;
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.