如何使用Proc Means按分组统计参与者数量与就诊总次数?
使用SAS Proc Means按分组统计参与者总数与就诊总次数
可以通过Proc Means直接实现你需要的两项统计,核心是利用不同的统计量分别计算参与者总数(去重ID的数量)和就诊总次数(观测总数),以下是具体代码和说明:
代码实现
假设你的数据集名为have,执行以下代码:
/* 分组统计并输出结果数据集 */ proc means data=have noprint n nlevels; class Group; /* 指定按Group分组 */ var ID; /* 用于统计不同参与者数量的变量 */ output out=group_stats n=Total_Visits /* 就诊总次数:每组的观测总数 */ nlevels=Total_Participants; /* 参与者总数:每组不同ID的数量 */ run; /* 打印统计结果 */ proc print data=group_stats noobs; var Group Total_Participants Total_Visits; run;
代码解释
proc means的n选项:统计每组的观测总数,对应你需要的就诊总次数(每个观测代表一次就诊)。nlevels选项:统计var变量(这里是ID)在每组中的不同水平数,对应参与者总数(每个ID代表一名参与者)。class Group:指定按Group分组计算统计量。output out=group_stats:将统计结果输出到指定数据集,方便后续分析或导出;通过n=xxx和nlevels=xxx自定义统计量的列名。
结果说明
执行后,group_stats数据集会输出如下结果:
| Group | Total_Participants | Total_Visits |
|---|---|---|
| 0 | 3 | 5 |
| 1 | 3 | 9 |
完全匹配你需求中的统计结果。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

