【发布时间】:2014-10-02 08:54:32
【问题描述】:
首先,我知道我的问题类似于This(这是我发现的最接近我的问题),但同时有一些差异,因此我的新帖子。
我有一个带有标识符和声明的数据库。声明构造为标识符 + 一个字母。 如果标识符是 123456,则声明将是“123456A”、“123456B”等等
我想为每个标识符选择一个观察值,声明是带有最后一个字母的那个,当然,这并不总是相同的。
我假设我可以使用 proc 排序,然后使用 nodupkey 进行另一次排序:
proc sort data=have out=have2;
by identifier declaration /descending;
run;
proc sort data=have2 out=want nodupkey;
by declaration;
run;
但由于我有一个相对重要的数据库(数以千万计的观察),我想知道如果它是另一种更适合和最快的方法,那么我想知道最好的方法。 通常,如果可以一步完成。
谢谢
【问题讨论】:
-
如果您有足够的内存,请尝试上面链接中 Joe 的哈希解决方案,这可能会更快。
-
identifier有多少个不同的值? -
我有数百万个不同的标识符。更准确地说,大多数标识符只有一个声明,大约 20% 有两个,1% 左右有 3 个或更多。
标签: duplicates sas