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!
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.