删除SAS组中记录序列中的重复项

  • 本文关键字:SAS 记录 删除 sas 4gl
  • 更新时间 :
  • 英文 :


是否有可能在特定组内按顺序删除重复的记录,并仅使用4GL (SAS)输出其中的最后一个(基于od日期)?我有这样的数据:

data example;
input obs id dt value WANT_TO_SELECT;
cards;
1 10 1 500 0
2 10 2 750 1
3 10 3 750 1
4 10 4 750 0
5 10 5 500 0
6 20 1 150 1
7 20 2 150 0
8 20 3 370 0
9 20 4 150 0
;
run;

正如您所看到的,对于id=10,我希望只有一条(最后一条)记录,值为750,因为有一个在另一个之后,而值500可以是两次,因为它们是分开的。我试图使用最后/第一个,但我不确定如何排序数据。

看起来像是BY语句的NOTSORTED关键字的用例。这将允许您使用VALUE作为BY变量,即使数据实际上不是按VALUE排序的。这是最后一条路。可以使用VALUE标志

data want;
set example;
by id value notsorted;
if last.value;
run;

结果:

WANT_TO_
Obs    obs    id    dt    value     SELECT
1      1     10     1     500         0
2      4     10     4     750         0
3      5     10     5     500         0
4      7     20     2     150         0
5      8     20     3     370         0
6      9     20     4     150         0

最新更新