我有一个看起来像这样的数据集:
id,colour
12,blue
12,green
12,yellow
13,blue
14,black
15,blue
15,green
Run Code Online (Sandbox Code Playgroud)
在同一个数据集中我想拥有每个id的计数最终我要做的就是消除有多个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
Run Code Online (Sandbox Code Playgroud)
在排除重复的id后,我的最终结果将最终看起来像这样:
id,colour
13,blue
14,black
Run Code Online (Sandbox Code Playgroud)
使用SAS 9.3+中的PROC SORT通过关键变量获得一组独特的观察结果.
proc sort data=have out=duprec nouniquekey uniqueout=want;
by id;
run;
Run Code Online (Sandbox Code Playgroud)
在SAS SQL中,您可以直接重新合并 - 这是其他SQL版本不支持的内容.您可以使用HAVING子句进一步限制查询以直接获得最终输出.
proc sql;
create table want3 as
select *
from have
group by id
having count(*)=1;
quit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |