SAS如何在同一数据集中获取汇总计数

时间:2015-04-13 20:22:12

标签: count sas summary

我有一个看起来像的数据集:

id,colour
12,blue
12,green
12,yellow
13,blue
14,black
15,blue
15,green

在同一数据集中,我希望得到每个id的计数 最终我想要做的是消除有多个

的ID

在SQL中我会使用SUM OVER()窗口函数,或者自己将表连接到每个id的计数

在SAS中最好的方法是什么?

id,colour,num
12,blue,3
12,green,3
12,yellow,3
13,blue,1
14,black,1
15,blue,2
15,green,2

我的最终结果在排除重复的ID后最终会看起来像这样:

id,colour
13,blue
14,black

1 个答案:

答案 0 :(得分:6)

使用SAS 9.3+中的PROC SORT通过关键变量获得一组独特的观察结果。

proc sort data=have out=duprec nouniquekey uniqueout=want;
by id;
run;

在SAS SQL中,您可以直接重新合并 - 在其他版本的SQL中不支持。您可以使用HAVING子句进一步限制查询以直接获得最终输出。

proc sql;
create table want3 as
select *
from have
group by id
having count(*)=1;
quit;