I need to do a calculation for each level of detail in proc sql: count number of courses for each ID, and sum number of Failed for each ID. Here is a sample of data. Notice that COURSE is not a numeric variable, so I cannot use proc summary or proc means. Does anyone have a better idea? Thanks!
ID | COURSE | Failed |
1 | NGR-7892 | 1 |
1 | NGR-7945 | 0 |
1 | NGR-7974 | 0 |
2 | LIS-5973 | 0 |
2 | LIS-5942 | 1 |
2 | NGR-6207 | 0 |
2 | TTE-6655 | 1 |
I don't know what to do with the hypothetical case where a given id failed the same course twice. This counts it as two failures:
proc sql;
select
id,
count(distinct course) as nbCourses,
sum(failed) as nbFailed
from myData
group by ID;
quit;
I don't know what to do with the hypothetical case where a given id failed the same course twice. This counts it as two failures:
proc sql;
select
id,
count(distinct course) as nbCourses,
sum(failed) as nbFailed
from myData
group by ID;
quit;
Thanks. This code works perfectly.
You can use proc summary with your data:
data have;
input id $ course $ failed;
datalines;
1 NGR-7892 1
1 NGR-7945 0
1 NGR-7974 0
2 LIS-5973 0
2 LIS-5942 1
2 NGR-6207 0
2 TTE-6655 1
;
proc summary data=have nway;
var failed;
class id;
output
out=want (drop=_type_ rename=(_freq_=count))
sum(failed)=
;
run;
Thank you. The code you shared also works!
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.