2016-11-04 249 views
-1

我已经使用nodupkey功能删除了数据集中的重复项,但希望将删除的重复项与保留的第一个观察项进行比较。如何使用SAS中重复的变量创建数据集

proc sort data=matchedfile dupout=deletedduplicate nodupkey 
out=dedupedfile; 
by ID; 
run; 

我们需要一个数据集相结合是重复的,在dupout文件中删除重复项,并在dedupedfile相同ID的观察所有观测。

谢谢!

+0

这是不是很清楚你想要什么,它似乎更像是一个代码的请求比在这里适当。你有没有看过,例如'PROC COMPARE'?不管怎样,“比较”意味着什么......无论如何......你的数据看起来是什么关键,总是只有1个重复的行,或者它有时是10个重复的? – Joe

+0

我试图找到一个最终的数据集,它将拥有所有那些具有重复ID的数据行,这样我就可以导出到excel并只是眼球,看看为什么我的ID是重复的。我从dupout文件知道,大多数情况下只有一个重复行,但有时它不止一个重复。 – user6241156

+1

在excel中,可能有更好的方法来做到这一点。在数据步骤中,很容易将唯一记录,重复记录等输出到不同的数据集。通过一些工作,你也可以回答这样的问题,例如“当有两个带有重复键的记录时,所有非关键变量的值是否相同?”如果这听起来很有用,建议你开始一个新的问题,“清理可能有重复数据的数据时,我如何识别......的记录” – Quentin

回答

0

如果您的问题是您希望“未删除”行具有“已删除”行,则可以使用SAS 9.3中添加的NOUNIKEY选项。它与NODUPKEY相反 - 只保留不唯一的记录 - 并删除唯一记录。你可以让那些被删除的唯一记录丢弃(如果你愿意,单独做一个不同的查询来得到它们),或者你可以使用UNIQUEOUT将它们放入一个数据集中。

proc sort data=have out=dups nounikey uniqueout=nodups; 
    by whatever; 
run; 

有关更多详细信息,请参阅PROC SORT documentation

相关问题