我需要删除具有重复对的观察结果(即原始观察结果是重复的)。我有一百多列,但有时对于给定的 ID,我会得到一对不同的 Load_Date 和一对 Contactor 列。当我有如上所述的重复对时,我使用以下代码删除所有情况
:
你能告诉我我的做法是否正确吗?根据描述的数据,我只需要保留 ID 值 C 和 D 的记录。我确实检查了我的输出,看起来它有效,但仍然不确定,因为我是 proc sql 的新手。谢谢!
我需要删除具有重复对的观察结果(即原始观察结果是重复的)。我有一百多列,但有时对于给定的 ID,我会得到一对不同的 Load_Date 和一对 Contactor 列。当我有如上所述的重复对时,我使用以下代码删除所有情况
:
你能告诉我我的做法是否正确吗?根据描述的数据,我只需要保留 ID 值 C 和 D 的记录。我确实检查了我的输出,看起来它有效,但仍然不确定,因为我是 proc sql 的新手。谢谢!
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
andLAST
应该是by
语句中最右边的变量。
还有一个 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;