id drug
1 a
1 a
1 a
1 b
1 c
1 c
2 a
2 b
2 b
2 b
2 c
2 c
I have the following data. I want to create an output that provide me with the total number of id who have 2 or more of a specific drug. For example for id1: count the id one for a, none for b, and one for c
here is the output I am looking for
drug total ids
a 1
b 1
c 2
Post test data in the form of a datastep!
Just a rough guess:
proc sql; create table WANT as select ID, DRUG count(*) as RES from HAVE group by ID,DRUG having RES >= 2; quit;
If you know how to read PROC FREQ output, two PROC FREQs should do the job nicely.
proc freq data=have;
tables drug * id / noprint out=counts;
run;
proc freq data=counts;
tables drug;
where count > 1;
run;
The output data set from the first PROC FREQ counts the number of observations for each DRUG / ID combination.
The report from the second PROC FREQ will give you a list of the drugs, and the FREQUENCY column is the number of IDs.
Thank you all!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.