我需要删除具有重复对的观察结果(即原始观察结果并且它是重复的)。我有超过一百列,但有时对于给定的ID我得到一对不同的Load_Date和一对接触器列。
下面的代码我用来删除所有情况,如上所述我有重复对
:
如果我以正确的方式做到这一点,你能告诉我吗?根据描述的数据,我需要保留ID值C和D的记录。我确实检查了我的输出,看起来它工作,仍然不确定,因为我是proc sql的新手。谢谢!
答案 0 :(得分:3)
SAS解决方案,假设您只想删除重复ID
的记录。
proc sort data=have;
by ID;
run;
data want;
set have;
by ID;
if first.ID and last.ID;
run;
这将删除ID相同的记录。如果VAR1和VAR2也相关,您也可以将它们添加到排序中; FIRST
和LAST
应该是by
语句中最右边的变量。
答案 1 :(得分:1)
一个proc SQL解决方案。相同的输出,但只有一步,没有明确的排序。
proc sql;
create table WANT as
SELECT *
FROM have
GROUP BY ID
/* Put your criteria here, can use any COUNT DISTINCT*/
HAVING COUNT(*)=1
;quit;